So what's the name in other languages?
In German, people like to call it "Schweinegatter" (pig fence), for obvious reasons.
When I was small, I was taught it is the number sign - as apparently Brits wrote #1, #2, ... meaning number one, number two,...
I always though it was called "pound sign", as it was used for British pound on typewriters that didn't have a pound sign, due to the fact it was at the same position. Well, I learned typewriting on a machine with the pound sign, which I think was however rather unusual in Germany.
Then I know people who call it "railroad crossing", I guess for obvious reasons as well.
Why it's called a hash, I have no idea. Then people call associative arrays hashes, which is confusing the specification with the implementation. So I guess people like to use the word hash when they don't know what they are talking about.
Yep, it then it seems a lot of people call it sharp, that's why C# is pronounced C-sharp, isn't it?