Static polymorphism produces faster code, mostly because of the possibility of aggressive inlining. Virtual functions can rarely be inlined, and mostly in a "non-polymorphic" scenarios. ...
On the other hand, not only compile times, but also the readability and debuggability of the code is much worse when using static polymorphism.
For instance: abstract methods are a clean way of enforcing implementation of certain interface methods. ...