The reason some places don't use it is simply because it takes a lot of work both to get started and to continue. The fact that writing unit tests takes about as much time as writing the actual functionality seems to some managers like you're cutting your developer's productivity in half.
On top of that, you build team (or someone) needs to put the infrastructure in place and maintain it.
And as Alan says, a lot of places simply don't use best practices - they just want to see something tangible.