This is what I see. I have Ubuntu 20.04 LTS VM using Parallels Desktop Version 18.
# adduser 'dog$house'
adduser: To avoid problems, the username should consist only of
letters, digits, underscores, periods, at signs and dashes, and not start with
a dash (as defined by IEEE Std 1003.1-2001). For compatibility with Samba
machine accounts $ is also supported at the end of the username
I tried your longer version verbatim:
useradd -m -s /bin/bash 'mac$crooge'
and that quietly succeeded. I'd left out "-m" and "-s" because, for an ordinary username, I get the home directory that I want and the (bash) shell that I want without explicitly asking for these.
It's bizarre that, merely by being explicit about these two fact, I'm now allowed to have a name with a dollar-sign—notwithstanding what the text of the earlier error message claimed. I wondered if that it wasn't an error message at all—and was just a warning. But "cat /etc/passwd" showed me that "dog$house" had not been created while "mac$crooge" HAD been.