I grant the premise that TDD has drawbacks. But are they really worse than the drawbacks of not writing tests?
Code with no test coverage will have more defects and will be more prone to regressions.
For many projects TDD is the best we've got until something comes along that replaces it.