The main and obvious difference is the cost. Although being a free service it does come with certain limitations.
Free hosting allows you to host a limited number of website and comes with disk space and bandwidth cap. This is put in place to make sure that everyone can have a fair chance at the service. Free hosting is the perfect place to learn. It allows you to experiment, code and build without an investment.
Paid hosting services typically have more functionality, have added features and much larger data and bandwidth caps. You get an overall more professional and flexible experience.