O motivo está na sua primeira variável ( new_line ), existe apenas uma sequência de escape (ou seja, \n = backslash seguido por n ) que é passado inalterado para echo , enquanto na segunda um ( cur_log ), existem novas linhas reais que são removidas pelo shell que faz parte da variável IFS .
Uma nova linha é, sob Unix / Linux, um único caractere que o código ASCII é 10 (line- alimentação). Quando um arquivo contendo esse caractere é exibido na tela, ele é convertido em dois caracteres, retorno de carro mais feed de linha ( CR-LF ), 10 + 13 . Quando um editor como gedit abre esse arquivo, ele armazena cada linha separadamente. O avanço de linha é usado apenas para detectar a separação entre duas linhas contíguas. \n é composto por dois caracteres, ASCII 92 + 110 . Se você editar um arquivo contendo ocorrências de \n , esses dois caracteres permanecerão inalterados e exibidos como estão, ao contrário das novas linhas reais.