Because the GPUs' archictectures are different. ATI/AMD GPUs have a lot more tiny, stupid cores, while Nvidia GPUs have fewer cores but they are more powerful. Hashing is fast and stupid, so AMD and its stupid cores do better here.
Thansk, but if NVidia utilizes powerful cores wouldn't those be able to calculate more hashes simultaneously per chip than the "stupid AMD cores"? (well, we know the rate is much lower so it apparently isn't but where is mistake in this logic?)