Como você fez $(adduser ..) em vez de simplesmente adduser .. , aplica a substituição de comando e essa linha é substituída pela saída desse comando. Portanto, se adduser produzir uma saída de Adding user ... , o shell tentará executar Adding user ... como um comando. Em vez disso, faça:
id -u ${username} > /dev/null 2>&1
if [ $? -eq 1 ];
then
echo "Adding user"
adduser --group ${groupname}
adduser --disabled-password --ingroup ${groupname} --no-create-home --system ${username}
fi
exit 0