People are annoyed by canonical shoving snaps into their mouth at every opportunity (people want to choose when to use them by themselves), but there are many legitimate reasons for existence of snap and flatpak. Here are some of them:
the app developers themselves are in full control of their app's distribution and updates instead of relying on distro maintainers. devs getting some angry mails for bugs already fixed but not yet included by distros is tale as old as time.
simplified dependency management. what's stopping the dev from packaging their app using distro's native package management instead? whelp, they don't want to deal with this stuff. It can be a hard work, and there are dozens of distros out there to support.
protecting users data. when you run an app installed from your distro's package manager, you know you can trust it because your distro maintainers have vetted the app to make sure it doesn't read your mail or your browser history or your ssh keys. when you download the app from a third party source, you can only pray to god that those apps won't mess with your data behind your back. You don't have to worry about that when you use sandboxed apps like flatpak.
As an end user I actually love them (yes I know, sacrilege). Flatpak is my preference, but I also prefer pretty much anything to Ubuntu in its defailg state so that might have something to do with it.
Flatpak:
To limit shady proprietary software from accessing your full storage / hardware.
You can manage the sandbox access through tools like FlatSeal.
Snap:
To ruin your day / user experience.
Both where introduced as a universal way to distribute packages on various distros.
If you're using a stable distro, the repo will end up with programs that are years out of date. So instead of compiling manually, you use flatpak/snap/appimage/nix/guix as an extra package manager. They also allow devs to release cross-distro packages.
I spent several hours trying to figure out why the fish shell configuration page (which is a dynamically generated local web page) wouldn't work, including uninstalling the snap version of Firefox and using apt to try to install the normal version of Firefox. Because neither version of Firefox could open the page, I spent hours trying to diagnose why the fish shell wasn't working properly. Eventually, I installed a different browser and it worked. I finally figured out that it was because Canonical tricked me into re-installing the snap version of Firefox via apt even though that is clearly not what I wanted. I'm still a bit salty about it.