Aren't they just a middleman for AWS anyway?
Heroku is platform as a service (PaaS). It abstracts away the complexity of AWS. The base cost is more expensive than raw AWS but you don't need to source and pay for a sysadmin.
AWS, Heroku and DO aren't "better" than each other, they serve different use cases.
With heroku you need to pay to keep things running, though sadly with DO you need to do a lot of sysadmin work to keep things running.