There's no such restriction in the P164 for the dollar sign. It can be showed, of course.
Sometimes the problem is that on common devices, the dollar sign ASCII code is 0x24, while in the original RDS code table the dollar sign has code 0xAB. The solution needs to identify the code table currently in use for the encoder's data input, so it depends on what software and what command do you use for loading the data to the encoder.
The PIRA-family encoders support two code tables on the communication interface: RDS (EBU Latin G0) and UTF-8.
The UTF-8 is used for X-Command, the EBU Latin G0 for other ASCII commands and for UECP.
For the UTF-8, the encoder converts 0x24 to 0xAB itself. For the EBU Latin G0 the conversion obviously needs to be made by the application which sends the data.
Many receivers however do not respect the difference so the dollar sign can never be showed properly on all receivers. You can send 0x24 or 0xAB but not both at the same position... No ultimate solution exists for the $ issue. Maybe it is better to type 'USD'.