I'd say the cost of free hosting in terms of licenses and having admin staff around to manage the hosting service have become a challenge. It's not as easy as it used to be to make something out of it. Spam and hacking have escalated so much and got nastier than before requiring a high quality of admin staff to manage the server. Admin staff are not as easily available as they used to be. In addition, not many people are using shared free hosting any more for their permanent needs. It's more like fly by nighters who just want to test their Website - usually a WordPress site - then leaves it behind and moves on to paid hosting. Creating more extra work, as of course an idle WordPress Site - usually unsecured - is a security risk.
So to actually make something out of a free hosting business takes more effort than before and many more headaches. I can understand why those who offer free hosting would do it in conjunction with cheap hosting. But yes, there are probably more paid hosts who are using the free hosting as bait for paid hosting than free hosts who use paid hosting to help pay the bills of free hosting.