Como @RakeshSharma apontou nos comentários, eu estava usando a atribuição de variável com um único =
, então foi adiada para o tempo de execução, executando-a duas vezes.
Na segunda vez em que o script tentou acessar a variável, ela foi executada novamente e criou outra pasta temporal.
A alteração de =
com :=
faz com que use a expansão imediata , por isso cria uma vez a pasta temporal.
De
TEMP_DIR_HTMLPROOF=$(shell mktemp -d)
para isso
TEMP_DIR_HTMLPROOF:=$(shell mktemp -d)