There are a number of reasons, though I know someone who claims "ALL homeless people are just lazy" would write many of them off as excuses for laziness, like drug and gambling addiction, or family breakdowns.
Of those you can't excuse as laziness, mental disorders are one big cause. And as mentioned, the high cost of living is another. There is a subset of people called "the working homeless", those who have jobs, sometimes two or three jobs, but are still homeless. Low income/high rent situations, where people are living out of their cars, or at best, couch-surfing among their friends.
And that's not even counting the rapidly growing trend these days of grown adults, 30 to 40+ (or more), moving back in with their parents. They're not on the streets, but due to the cost of living they're still /technically/ homeless, being as they don't have their own home but are living in their parents home.