This probably would have been a nice excuse to implement reader macros and implement it that way, it's kinda a shame to have it implemented in the interpreter since most of the joy of Lisp is how much of the language can be written in the language itself.
heist (https://github.com/jcoglan/heist) a lisp interpreter in ruby also supports string interpolation. however, i think this is a side effect of how they implemented string escaping. like you want to support \r\n\t, etc. if you send strings into Kernel#eval you get this for free :)