O comando printf tem motivos para não aceitar charters neste intervalo. Se você olhar o código de sounce para printf, você verá este comentário:
A universal character name shall not specify a character short identifier in the range 00000000 through 00000020, 0000007F through 0000009F, or 0000D800 through 0000DFFF inclusive. A universal character name shall not designate a character in the required character set.
Você pode ser capaz de recompilar sem essa verificação, mas parece muito deliberado para mim. Tente usar o comando sem o \ u, por exemplo:
(
for nib1 in {0..9} {A..F}; do
for nib0 in {0..9} {A..F}; do
$(type -P printf) "(
for nib1 in {0..9} {A..F}; do
for nib0 in {0..9} {A..F}; do
$(type -P printf) "%pre%$nib1$nib0"
done
done
echo
)
$nib1$nib0"
done
done
echo
)