The strongest convention I've seen for this is to indicate jQuery objects, but it's purely convention and not by any feature of the language. So there's a seed of truth in that people commonly use them to indicate it's a cached DOM reference; but it doesn't make it cached.
eg.
var $foo = $('expensiveDOMquery');
$foo.each(dothings);
$foo.each(domorethings);
Here $foo has been used twice but the DOM was only queried once.
I have actually seen this convention creep into vanilla JS projects as well, to indicate the results of querySelector that the author wants to re-use.
The trick about convention is that it's not enforced globally, so you still need to check how it's used if you come across it in a project.