De acordo com o POSIX, os nomes das funções podem conter apenas caracteres de palavras ( [a-zA-Z0-9_] ) (fonte: parte 1 , parte 2 ). Altere o nome da função de default-log para default_log .
Mas, normalmente, o Bash é muito tolerante com os nomes das funções, então não sei por que ele está falhando.