You could can get quite far with 1 free Heroku dyno, 10K free rows on Heroku PostgreSQL, free CloudFlare for caching and free error notifications. Compared to something like setting up a generic Linux server yourself, Heroku pushes you into coding in way that makes recreating server setups and deploying multiple servers easy. You can get something running in other ways but the above is low maintenance.
Shared hosting make it simple. You can spin up a LAMP website on Dreamhost in an hour. The DB is basically just a few clicks with default values and dropdowns.