Eu não sei ao certo, mas meu primeiro palpite é que isso é porque o Jenkins não está lançando o subshell como um 'shell de login'. Quando você faz o login em um shell em um ambiente interativo, o shell carrega arquivos de ambiente de maneira diferente de quando é lançado através de um ambiente 'não interativo', como o cron. Para alterar esse comportamento e fazer com que seus ambientes 'combinem' com mais fidelidade, você precisará iniciar o subshell como um shell de login. Existem várias maneiras de fazer isso, e tenho certeza que o Jenkins tem uma maneira mais robusta, mas, no mínimo, você pode tentar mudar a primeira linha sh-bang para:
#!/bin/bash -l
Remova essa linha de fornecimento explícita do trabalho. Agora, veja se tudo funciona! :)
Para referência, dê uma olhada na seção longa e complexa da página man do bash "INVOCATION". link