To me, it's the opposite. You can't print a text string with $ in it!
Who needs to print a text string with $ in it? I actually don't, ever. I've never written business software.
The reason is probably knowable; I bet it's an IBM (etc) mainframe OS issue, where you can't easily represent non-printing characters in punch cards or something; the roots of this stuff are very old.
IBM 3270 terminals emulated sort of, a combination card punch and reader. Batch oriented, not characters.