Are addons written in python compiled at runtime?
Python is by default an interpreted language. Blender bundles and uses the default python runtime (CPython), ans therefore python code in blender is interpreted.

However there is a catch. Most of Blender's API is actually written in native code (C) and is then exposed to the Python runtime through generated bindings. 

Relative performance is trickier, as this is dependent on many many factors. And there are other issues here as well, in particular the GIL, which prevents the CPython interpreter from being truly multithreaded. Efficient use of the Blender API and the Numpy library (bundled with Blender) can bring most performance issues to acceptable levels. It is best to start with those anyway, and only look at other alternatives when you actually run into issues (i.e. avoid premature optimisation). You may find that the main performance bottlenecks are things other than code execution speed anyway (e.g. file handling).