Agree for very well specified projects where the amount of time a project will take can be easily be predicted and so a suitable fixed fee identified.
In an ideal world all projects might look like that but in practice I think there's a chunk which don't. Agreeing fixed fees for these can be a horrible productivity killer because the estimates will tend to be way off and an "it's impossible to do this in the time/ budget allocated so why both trying" mindset can set in which de-motivates everyone working on it.
In this environment I think fixed fee can encourage corner cutting so for me it's about taking projects on a case by case basis and deciding whether fixed fee or time and materials is appropriate based on how predictable the scope and workload will be.
This largely depends on the services you are delivering. Design should only be based on hourly if it's a salary situation. The creative process isn't the same as typing out HTML / CSS.
Hourly rates - incentive for productivity gains - this is a two way street. I base my fixed prices on my hourly rates (though I may raise these rates significantly depending on the client and the job) and try to estimate the hours needed. If bid good, then I will get my hourly rate. If I bid horrible then I'm either making more money or losing money.
Of course I want to get the job done as fast as possible (without cutting corners) to get the best rate possible for the job, but I also have to keep an eye on deadlines and the start date for the next project. There are always more factors than just money to give you incentive for productivity gains