The main reason is that many developers and development managers don't have a clue that unit tests exist, or how to use them.
The second reason is that unit tests can only be used (in a sensible manner) with code that already fulfills some quality standards. Chances are, that some existing codebase doesn't fall into that category.
The third reason is lazyness and/or cheapness.