Because in display:none, the element, for all purposes, ceases to exist — it doesn’t occupy any space.
However, in visibility:hidden, it’s as if you had just added opacity:0 to the element — it occupies the same amount of space but just acts invisible.
The jQuery creators probably thought the former would be a better fit for .hide().