Practically, GPU is still way more generalized than TPU. For that reason, optimizing an algorithm on TPU is usually much trickier than GPUs. There are much more nuances because of the way TPU is designed.
On the other hand, Google has good reason to hold back TPUs from general public, and instead only offer them on Cloud. That also contributes its limited use.
1. Technically, TPU is less generalized, making it publicly appealing requires too much engineering effort, which has very high risk of not paying off. Case in comparison: How AMD is not able to capitialize on GPU in Deep Learning despite more uniform architecture.
2. TPUs does have some advantage, that Google want to keep at its own possession. For example, Google would not want FB to easily copy TPUs. FB indeed very likely benefit from TPUs, as they are running similar business.
On the other hand, Google has good reason to hold back TPUs from general public, and instead only offer them on Cloud. That also contributes its limited use.