Processor design gets into solid EE fundamentals, but the technical reason why depends a lot on the processors you are talking about (you can't really equally compare the thermal output of a Intel 40386 to a Intel Core i7 same as you can't really equally compare the thermal output of a single core processor to a multi-core processor).
By all accounts, if something uses less energy, it will in effect, produce less heat (unless specifically built to do the opposite, like a space heater).
The biggest reason processors today are more efficient than their ancestors is simply scientific advancements have helped us understand how we can squeeze more efficiencies out of certain areas of a processor.
To wit, another reason why multi-core processors are better in today's computing world also has to do with time on processor. If I'm running a music player, while typing a word doc and surfing the web, each of those programs has to fight for a slice of processor time, which in effect means that my single core processor is working harder (context switches and what not), but if I had a 4-core processor, I could have each process running on it's own core (processor) and thus not have the complete extra workload that a single core might have.
TL;DR: the harder a processor has to work, the more heat it will generate, the more efficient it is at it's work though can translate to efficiencies in heat generation (i.e. a more efficient processor can generate less heat).
Hope that helps.