Basically, the situation is that a lot of the string operations in Julia are currently optimized for UTF8 (and ASCII), so performing those operations (like concatenation) on another type like UTF16 first converts to UTF8 or ASCII.
In the future, it will probably make sense to expand the set of optimized operations that work on UTF16 and UTF32 without conversion, but since UTF8 is Julia's default string type it will probably always have more code.