In my environment (a not-for-profit hospital), it's rare that the spec is clear and easy to write and the programming is hard. More often it's the other way around, or they are both hard. Worse, as is the way with software, either the spec or the programming looks easy at the beginning and becomes hard. Thus it's fairly rare to have a task where a fixed cost, known up-front, is a workable way to do business.
Also, when I do have a task that's that clear and contained, it's often a treat to have something so straightforward to work on; so it's better to to let someone in-house have the benefit of doing it, if possible.