porque $test
contém espaço em branco quando você diz
myfunc $test # without quotes
sua função recebe > 1 argumento. myfunc recebe 2 argumentos aqui, aaaaa
e aaaaa
.
Você quer isso:
myfunc "$test" # with quotes
Regra geral: sempre cite seu "$variables"
, a menos que você saiba exatamente quando e por que não.