umask
só funciona se for executado por um comando interno.
Não chame o script pelo nome, mas chame . script
para permitir que ele seja executado pelo processo shell atual.
Se, no entanto, você ficar confuso com o valor impresso como 0022
em vez de 022
, não há diferença, esses valores são idênticos.
Teste o POSIX umask -S
para obter uma saída mais compreensível.