Snap, like FlatPak and AppImage, and similar to Windows' PortableApps, is an attempt to make package installation, de-installation, and dependency management painfully easy. It packs the program and all its dependencies into a single bundle that runs more-or-less independent of the rest of the OS and all other programs.
Some love it because it does effectively eliminate "dependency hell". Some hate it, complaining about how slow (relative to conventional installations) it is and how badly it adds to system bloat. I fall into neither camp, but one of the first things I do upon installing Ubuntu is purging snap from the system. (I don't use FlatPak either, but I have a few AppImages in /opt
because I'm either trying them out or because I love the application, can't get it in a .deb, and don't want to install from source.)
EDIT: I overlooked one of the points of snap and similar package formats: the intent of providing (like Java used to) a "write once, run anywhere" package. Programmers, they promise, will no longer have to create packages for half a dozen different package managers; they can create one "universal" package and it'll install on any distro that supports it. And of that idea I am a fan. (Like self-checkout, though, I think it's a great idea but it doesn't work well enough for everyday use yet.)