Why the disparity? And why use 'No.'? Is it from the French?
And the hash or pound sign seems a weird choice too, is there a history or any reason involved?
No. comes from the abbreviation of "numero", ablative case of the Latin "numerus"
# was used in America for an interesting reason:
In the United States, the symbol is traditionally called the pound sign or the number sign. The pound name derives from a series of abbreviations for pound, the unit of weight. At first "lb." was used; however, printers later designed a font containing a special symbol of an "lb" with a line through the verticals so that the lowercase letter "l" would not be mistaken for the numeral/digit "1". Unicode character U+2114 (℔) is called the "L B bar symbol", and it is a cursive development of this symbol. Ultimately, the symbol was reduced for clarity as an overlay of two horizontal strokes "=" across two forward-slash-like strokes "//"1
# in America ultimately became used for numbering everything, not just in weight, but in any quantity.
The reason the # wasn't used as a numbering sign in England was because the pound in England was denoted by the (£) sign, so
# wasn't used to avoid confusion.
1 The above was taken from here
I consider this etymology to be more correct for
No., since No. is not an acronym but an abbreviation:
ORIGIN: from Latin numero, ablative of numerus ‘number.’ ]
I couldn't find anything on the # symbol yet, I guess that wikipedia article is the only source. I'll make sure to edit in case I find something else.