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.
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