Você está canalizando a saída de echo "some info" > final.csv para cat temp.csv >> final.csv , então esses dois comandos ( echo e cat ) são executados em paralelo.
Por causa disso, o que acaba no final.csv depende de qual programa é agendado. O que você quer fazer é substituir | por ; . E então o comando echo será executado até terminar, e somente então cat é iniciado.