For those with access to a supermarket, a combination of lack of time, lack of education, and lack of ability to delay gratification that causes people to eat junk food. Not money.
None of the above. For most poor and even lower-middle class families, the limiting factor is lack of access to food preparation equipment and facilities. Low-income housing often lacks a kitchen. Even if you have a kitchen, one often lacks appliances; trying to subsist on unprocessed food without a refrigerator or a stove is difficult to put it mildly. Families near the poverty line move from place to place a lot, often on short notice in response to evictions. There's no way they could maintain possession of bulky appliances under such circumstances, not to mention an adequate inventory of cookware.
Poor families are really living on the edge, much more than you realize. Once you get to the point where you can't afford a security deposit for an apartment, a lot of options close off. Food preparation is one of them.