They either always have some critical piece of functionality missing, or require much more configuration and hand holding than Heroku does. That's not to say they aren't useful, but for serious businesses it's hard to migrate without assuming you'll need a DevOps person to run it. Heroku on the other hand is so hands off, that you really don't need anyone specifically to manage it. We spend about $1,000/month for Heroku managing a SaaS app with 40,000 users and I have never had to tweak or configure Heroku beyond initial setup and then just scaling, which is literally just clicking a button.