AWS is infrastructure as a service (IaaS). You need to worry about load balancers, backup scripts, firewalls etc. Ie you need a plausible sysadmin to run it. Even Elastic Beanstalk requires some sysadmin.
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.