Why are the pins on the official arduino motor shield so long?
These are the normal stackable headers used on OFFICIAL Arduino brand shields (they specifically state they are used on the Proto Shields, on the header item page), and on most Adafruit shields. They even sell them as standard components (Arduino 14.5mm pin length, Adafruit 10.5mm pin length headers). This are used to stack, because normal length headers are meant to be soldered on one side, and connected on the other, flush on the board. Because they are meant to stack, you have to account for board length, plus imperfect solder joints, and component height, on the solder side.

Pricing for headers is based more on plating and pin count than it is on pin length. They would get a price break due to volume as well.

I'm guessing the others you seen haven't been official shields.