Julia isn't AOT compiled. Indeed, one of the things that makes it so fast is that it does JIT compilation of method bodies using runtime information to drive type inference and to produce multiple type-specialized copies of methods.
Not by default no, but it easily supports dynamic code through 'dynamic'
The use of dynamic keyword and interface, doesn't make it dynamic from CS semantic analysis point of view.
C# allows generating and re-writing code at runtime. Couple that with reflection, bypassing private/protected modifiers etc. Does that make it dynamic? Genuinly interested, what defines a dynamic language?