If one uses a Lisp interpreter, macro expansion may happen at runtime.
CLISP example:
[2]> (defmacro add2 (place) (print 'add2) `(incf ,place 2))
ADD2
[3]> (let ((a 1)) (dotimes (i 4) (add2 a)))
ADD2
ADD2
ADD2
ADD2
NIL
[4]>
As one can see the macro form is expanded four times at runtime.