Because it was originally the same word as "Mann", which is itself short. There are a few pairs of words in German that are pronounced the same but written differently without any historical reason, just to not look the same. For example, there is "dass" (that) deriving from "das" (that) or "seid" (y'all are) and "seit" (since) which etymologically should both be spelled "seit".
The Germanic word was originally used to refer to all humans, regardless of gendersex. As the meaning of the pronoun "man" (no gender indication) diverged from the meaning of the noun "Mann" (male), it was also useful to spell it another way.
There is actually no hard rule the determines if a single vowel followed by a single consonant is long or short: "an", "ran", "heran" are also short. As you see, functional words often don't have double consonants despite having short vowels, and "man" is definitely such a functional word.