Python has a compiler step - source files (.py) are compiled into bytecode (.pyc) files. It just happens transparently. Doesn't make the language less dynamic IMHO.
Smalltalk, one of the seminal, dynamic languages has a compilation step. It happens inline everytime you save a method.
Lisp can both be dynamic and compiled.
Many dynamic languages---Python, Ruby, et all--on JVM or CLR have a compilation step. They compile to byte code that the VM then runs.