One of the major problems with standard shared hosting is the unequal allocation of finite resources. Most shared hosting companies run dozens (or more) of shared hosting accounts from a single static server. However powerful that server is, the resources at its disposal have an upper limit. Because many hosting companies oversell their shared hosting accounts, those upper bounds are often only a heavy-traffic day away.
Shared hosting clients have different needs at different times. One day your site may get a spike in visitors, the next day it could be one of your shared hosting neighbors. That’s fine so long as the server doesn’t get overloaded, but if several of the sites hosted on that server need a lot of resources at the same time, or if one or more sites is a frequent “bad neighbor,” using more than their “fair share” of the server’s resources, your site’s performance could be consistently hobbled.