BlueHost's core functionality is good. I've never had a problem with speed or uptime.
The user interface is pretty messy which makes it difficult to find what you want and get things done. What's worse though, is the fact that the functionality is oddly limited.
For example, I had some staging installations of WordPress that I wanted to delete. After trying every possible thing I could think of, I contacted support and they told me that you need Support to do that for you.
What made me decide to leave BlueHost though, was their "staging" feature. I was excited to give it a test drive but found that it was just a way to contact Support and request a migration to and from a Staging site. To make matters worse, they ended up botching the job and the site was down for about half an hour!
WordPress Engine is outstanding. We're moving all of our clients to them.
Hosting websites for clients.