The reasons to not to TDD are:
1. You don't care about the quality of your product.
2. You don't care about the quality of your code.
3. You don't care if there are any bugs.
4. You don't care if the team slows down month after month.
5. You don't care if the project is late.
6. You don't care if the project fails.
If you _do_ care about any of these things; then you should be using a unit testing discipline that guarantees that every line of production code is covered, and checked, by automated unit tests.
Oh, and make sure you know what TDD is. TDD is NOT:
1. Writing all your tests before you write any code.
3. Too Low level.
If you think TDD is one or more of the above, then you need to do some more research.
Honestly, the year is 2015, and people _still_ resist the one discipline that can actually make a project come in on time, with high quality, and good structure.