Curious accident of history. A pound is a very historical unit of weight. And later, a pound of silver became the unit of money. The units lb of weight from libre pondo, and the glyph that we derive the # from is based on that. It isn’t hard to see the relationship. # lb. Then comes a symbol for money. The origin of £ as a symbol for British currency is in principle L (from libre) with a single stroke denoting abbreviation, but it has a commonality with the sign for Lire, and once had the same two horizontal strokes. So we have two symbols. Both based on l for “libre”. And both with the same name, based on “pondo”, but we lost the bit about a pound of silver when it got to £. So the symbol for currency is derived from the dimension of weight (libre) but named for the unit. Which is unfortunate. But given how pounds are a cursed unit anyway, perhaps it was just a precursor to modern dimensional chaos.
Another misuse is calling it a sharp. A sharp sign is again different. Its use as a symbol for numbers means it gets called “number sign” in some contexts. But one would argue that is a semantic use, and not its name.
After this you get into the traditional internet wars of pedantry. Cross hatch, then hash, and so on. Now it gets called hash-tag, which it also isn’t. Octothorpe had its day in the sun, although it is possibly the most accurate name.
Most Unix geeks will also call it a hash. The magic number at the start of an executable image telling the system how to use the file can be the 16 bit value 0x2321 which usefully is #! in ascii. And that gets pronounced “hash bang”.
(! Isn’t a splat sign. It doesn’t have enough splats.)