Here's why:
* The "o" in "song" is pronounced with a short, clipped sound. It's similar to the "o" in "hot" or "dog."
* Long vowel sounds are typically marked by a long, drawn-out sound. For example, the "o" in "go" or "snow" is a long vowel.
Therefore, while the spelling "song" might make you think of a long "o," the actual pronunciation is a short vowel.