at first - unlimited everything is bussiness bullshit, it cannot be technically done. It works on principe "average customer takes 5GB of storage, top usage is 12GB, so we will calculate our storage to 15GB per customer".
Shared hosting is cheap variant for small websites. You have just FTP and Database access, you cannot configure anything on server (or in very limited way), you have no guaranted resources. There are 100s or maybe 1000s of webpages on single server, those webpages can (and will) affect each other. You cannot use libraries which aren't installed on your server, you have no control about versions of software, security patched etc. But it is cheap.
VPS on the other hand provide you server. That server has some resources (disk storage, RAM, CPU) dedicated to you and noone can steal it (basically. There are some way but it's uncommon in comparation of shared hosting). You have to setup your server by yourself, so you need to understand what are you doing. But you can do mostly anything.
There is basic way how to make decision:
- Is your web just PHP and MySQL, without any special requirement and
you can accept there will be some problems and outages which you
cannot solve? Go for shared hosting.
- Is your app something which
cannot works with unchangeable environment? Do you need some special
libraries, supports, needs your own certificate for https? Can you
manage server? Go for VPS
- Is your app something what is in number 2
and you cannot manage server? Hire server admin and go for VPS.