First (and most importantly), Fastmail aliases don't need to be linked to my domain. If the goal of this is to not have my identity/addresses tracked across services, it is important that I not have a single, unique identifier shared between those emails.
If I sign up for Walmart with `walmart@danshumway.com`, I haven't gained any privacy. If I sign up with `walmart@fastmail.com`, I've gained a great deal of privacy.
Second, another use for Fastmail aliases is filtering -- the fact that they're not catch-alls. If I use a catch-all, an abuser can still fill up my email box by sending to unfiltered catch-all addresses. However, most emails you send to `@danshumway.com` will bounce, because I explicitly don't have a catch-all set up.
I could add a bunch of custom filters into Gmail to auto-delete emails that didn't go into a specific address, but I'd basically be re-inventing the wheel for no benefit. With Fastmail, I can easily modify, remove, or add a new alias in less than a minute, and I can have my aliases split between as many custom domains as I want. This is all stuff that Gmail handles very poorly. Even setting up custom domains at all is annoying in Gmail if you're not paying for GSuite.
And of course, Fastmail aliases can also contain catch-alls and wildcard operators, which means you get the best of both worlds. You can set up a wildcard alias for your domain that forwards everything like you describe, and that only counts as one alias.