String interning has nothing to do with static typing. AFAIK Ruby supports it with symbols and Python with strings in general.
The reason it's not done by default is that with mutable strings it would be more complicates/would require a different string implementation, I guess.