Time is another factor here— a big reason why the poor eat junk food is because they’re often working multiple jobs or jobs with long hours that doesn’t leave them much time to do actual cooking. It’s another aspect of the situation that lot of people overlook.
The ultimate solution to this problem would be to have healthy, well-prepared meals that you can buy for cheap. Imagine going to 7–11 and being able to pick up a healthy, filling, nutritious meal for under 5 bucks. But where is the incentive going to come from?