Actually DX10's unified shader architecture was more efficient than the shaders used in DX9, so in a straight match DX10 would have better performance. The problem is that most developers would add extra effects, like SSAO (Screen Space Ambient Occlusion), when DX10 was turned on, so even though the shaders ran faster the card had to do more work, leading to lower framerates and the impression that DX10 was slower, when it wasn't. Like most things to do with gaming, it all comes down to the engine, a well crafted engine can make magic happen, and a poorly crafted engine can look like crap whilst still crippling high end computers.
Take the RAGE engine, used in GTA IV, it's an impressive achievement, it incorporates Havok and Euphoria, along with Rockstars own rendering pipeline, but overall it's just not a very good engine. It's slow, it doesn't seem to be very good at LOD (Level of Detail) or running high res textures, and it seems to be very memory and CPU intensive for a game that really doesn't have that much going on. Even on my current specs GTA IV EFLC doesn't run that well, the highest FPS I've seen is 40-45, and that's a CPU limited number. In contrast there's Mafia II, which looks really good, has high quality models and textures, incorporates PhysX for cloth (something RAGE doesn't do, at least not well), particles and general physics functions, and can get up to 60FPS with everything turned on high with AA. Now I do have a dedicated card for PhysX, so that helps, but all I would have to do is turn it down to medium and run it off the CPU and I'd still get 40+ average FPS.