I have just installed a server and apparently it also comes pre-installed with snaps that besides being useless are also blocking the shutdown of the device.
This very good blog post has instructions for cleaning up your system. It basically says:
sudo snap remove each_item # (by dependency order)
sudo umount /snap/core/xxxx # On 20.04, on 20.10 /var/snap
sudo apt purge snapd
Clear various files at
/usr/lib/snap and alike
rm -rf ~/snap
sudo rm -rf /snap
sudo rm -rf /var/snap
sudo rm -rf /var/lib/snapd
In case of the server the only snap was
lxd (something Canonical is pushing as an alternative to docker).
IMHO this a bit of a conflict of interest between Canonical and the users. Users should be able to opt-in whatever they need and not be forced to uninstall stuff the hard way.
In any case, at least for the moment this is reversible. You can remove specific packages and the snap daemon and install later if needed.