Da lista de discussão comp.lang.tcl :
For stderr, exec creates a tempfile into which all the (putative) stderr-output goes, and which is read back afterwards.
Sugiro seguir o resto das informações nessa postagem. Por exemplo, você tem um arquivo .tclsh ? O que está sendo executado?
strace tclsh deve fornecer informações suficientes para determinar onde o tcl está tentando e não criar um arquivo temporário.