Take Houston as an example. I grew up there, so I'm familiar with it. Houston is generally a crappy place to live. It's way too big, has too much traffic, is unbelievably hot and humid, is smoggy, is ugly, and really lacks in entertainment options. But people move there in droves because:
1) It has a ton of jobs
2) Houses are affordable
So when you talk about the desirability of a city, there are multiple dimensions to that - and a "desirable" city is not necessarily one where people actually like to be. I know tons of people who would move from Houston to Austin in a heartbeat if there were more jobs up there. It's way prettier, less humid, and there is a lot of fun stuff in Austin. But it just doesn't have the same opportunities for a lot of people.