Eu acho que você não está realmente no diretório DIR; você executa cd em um subshell, mas o diretório de trabalho dos comandos restantes permanece em $TgtDir$c/$DirNew . Você pode verificar isso chamando pwd após echo $DIR .
Solução: chame cd diretamente, não use um subshell nem atribua o resultado a uma variável. Adicione o caminho de destino absoluto ao comando de cópia.
for c in ax
do
mkdir $TgtDir$c/$Date
DIR=$( dirname "${BASH_SOURCE[0]}" )
cd "${DIR}"
pwd
find . -iname $tgt -exec cp --parents {} $TgtDir$c/$Date \;
done
Alternativa: use o diretório de origem em vez de "." no comando find.
for c in ax
do
mkdir $TgtDir$c/$Date
cd $TgtDir$c/$DirNew
DIR=$( dirname "${BASH_SOURCE[0]}" )
find "${DIR}" -iname $tgt -exec cp --parents {} ../$Date \;
done
Nota: o código não é testado.