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?