As EarthDog stated, the NVIDIA shaders complexity makes up for it, although they are also worse at certain tasks than AMDs cards. Simpler tasks such as brute-force cracking can take better advantage of more stream processors at a lower clock speed. NVIDIA tries to make up with higher clock rates, this still doesn't make up for it though.
NVIDIA cards are better suited at more complex tasks, thanks to there design. You could say they are closer to a CPU in that sense, double precision is also something they do better then AMD cards. F@H comes to mind when I think of NVIDIAs lead in certain aspects.