¿Cómo es Lisp dinámico y compilado?

No entiendo cómo Lisp puede ser compilado y dinámico. Para que un lenguaje pueda manipular y modificar y generar código, ¿no es un requisito para ser interpretado? ¿Es posible que un lenguaje se compile por completo y aún sea dinámico? ¿O me estoy perdiendo algo? ¿Qué está haciendo Lisp que permite que sea compilado y dinámico?