El $
en el comienzo de la cadena en:
echo $'Hello World\nThis is a new line'
hace que las secuencias de escape sean interpretadas.
Manual de referencia de Bash [dice]
Las palabras de la forma $ 'string' se tratan especialmente. La palabra se expande a una cadena, con los caracteres con barra invertida reemplazados según lo especificado por el estándar ANSI C. ..
..
El resultado ampliado está entre comillas simples, como si el signo del dólar no hubiera estado presente.
Pero
echo $"Hello World\nThis is a new line"
Es completamente diferente. Este [artículo] sobre traducción específica del entorno local dice:
Una cadena entre comillas dobles precedida por un signo de dólar ('$') hará que la cadena se traduzca de acuerdo con la configuración regional actual. Si el entorno local actual es C o POSIX, se ignora el signo de dólar. Si la cadena se traduce y reemplaza, el reemplazo se cita entre comillas.
Nota: IIRC ambos $'string'
y $"string"
pueden no encontrar soporte entre diferentes shells. No solo las personas de otros shells los miran con curiosidad, sino que también debaten sobre si esto podría evitarse para la portabilidad del script.