That’s one of bash quirks. You can not redirect after 2>&1. Look,
$ snap list junk
error: no matching snaps installed
$ snap list junk 2>&1 > snap_err.txt
error: no matching snaps installed
#N.B. text remains on screen, not redirected
$ cat snap_err.txt
#N.B. yes, no content, file's empty
$ snap list junk > snap_err.txt 2>&1
#N.B. no text on screen, it's redirected
$ cat snap_err.txt
error: no matching snaps installed
#N.B. yes, text is redirected into file
$