Because some languages are ugly ad hoc scripting kludges and used goofy tricks to alert the "parser" to the fact that it has work to do.
And other languages were real language design efforts that used real variable names and not ugly macro syntax...
The one rather decent language that uses $ is Perl, but I might point out that Perl6 dropped it.