Sure, NYC/SF are super expensive, but almost every urban area is when compared to other smaller cities or rural areas.
The issue is that for a lot of people they can only find an ok job in the major urban area, but it's not enough to live there so they get stuck in the suburban wastelands with 45+ minute drives just to go work 8 hours.
They make enough to get by, but not enough to save and move out to a more desirable living situation in a smaller city or rural area without a secure job lined up.
Like $20 an hour is good in Toledo, but it's probably not what most people are making. That's probably a job you have to work up to for years. At $20 an hour in Toledo you very likely can have a higher quality of life then people making far more in the much larger metro areas. But at $10 an hour ($8.80/$7.25) in Toledo area you're probably worse off due to a lack of public support and opportunities for advancement.