I think there is a difference between placing your code on GitHub publicly and releasing it for free. Some of the examples in this very article are on GitHub but they still charge for the products and/or support. Just because you can access the product for free doesn't make it a free product. If that makes any sense at all.

Releasing on GitHub is more about allowing others to improve the product and submit issues. It allows the community who uses the product to also be engaged in the development of it.

A perfect example is myself I think. I've been added to all kinds of repos for products that I use. I submit issues for bugs or improvements that I think can be made. I might even submit a pull request here or there for some of these improvements. At the end of the day though I still pay for each of these and renew annually. Technically they are free to me as I have full access. Philosophically they are of great value to me and so I continue to support the projects with my money through updated licenses.