TDD is difficult to use in situations where you don't know the answer. It's hard to write a test when you don't know what to assert.
So, for example, GUIs. It's hard to write a test for a GUI because you don't really know what you want the screen to look like. Most of the time we fiddle around with the code. We mess with the CSS, and the HTML, we change font sizes, locations, margins, padding, colors, etc. Our eyeballs are the tests.
There are other areas of code that are like that. You don't know what you want the code to do. You have to fiddle with the code until it does something you recognize as "good".
This is a very small percentage of most projects. Most projects have vast suites of highly testable business rules, highly testable formatting rules, highly testable database rules, and a relatively few untestable GUI tweaks.