The first problem with specs is that nobody writes them. Joel Spolsky says
"Writing specs is like flossing: everyone agrees that it's a good thing, but nobody does it".
- Joel Spolsky, The Joel Test: 12 Steps to Better Code
We know developers like writing code more than specs, but the rule is developers don't code without a spec (including a release plan).
The second problem is that when people do write them, they try and spec the whole project, spending months detailing every Use Case, Business Rule and Process Flow Diagram. The client spends lots of money and sees no real progress, and the requirements change and the process begins again.