I roll my own. Postfix, dovecot, spamassasin and dmarc friends. Easy to setup? No. But takes about an hour/year of my time to maintain once the ball is going.
Be aware that it's significantly easier to host on smaller trusted hosting providers. Hosting this on cloud providers like DigitalOcean is almost impossible without getting blacklisted.
I've never heard of mailcow specifically, but I was intentionally avoiding all-in-one packages when setting up. Life has proven that good things aren't easy and easy things aren't good.
And so far I'm happy with that decision - setup is modular, was already able to extend it with postfwd, dual dkim signatures (rsa and ed25519), mta-sts and some other policy I can't recall right now.
I've also specifically wanted to run as little code as possible that's exposed to the internet - as such, I chose to not have webmail.
I also hosted my mail directly with Postfix and Dovecot back in the day before the all-in-one packages were a thing.
mailcow has reduced my yearly maintenance from a few hours to a few minutes. Addtionally it runs in Docker, meaning each service is fully isolated and it can be updated with a single command and without headache. Also includes a really handy web interface to configure each of the services, it even does 2FA if you are worried about security.
Have been running it since before it was using Docker and have 0 complaints, it always works and always improves.
I've tried them all, and this one I super-easy in comparison. Great documentation and just some ENV variables and you're done. Happy to share my compose file with you if you want.