Bueno, lo primero que habría que verificar es que el sftp manual no provoque el mismo problema.
Segundo, como sugerencia: el uso de expect en este caso es innecesario, si lo que querés es no tener que ingresar la contraseña de forma manual lo correcto es usar autentificación con clave pública, y configurar correctamente el cliente ssh.
Además, tampoco es necesario para hacer la transferencia interactiva, lo siguiente funciona de la misma manera:
Código BASH:
Ver originalecho "cd $RUTA_REMOT
put $RUTA_LOC/$ARCH_LOC
exit" | sftp $CUENTA@$SERVIDOR
Lo que quiero decir es que no sé por qué te está sucediendo lo que te está sucediendo, pero al menos se puede de forma sencilla eliminar "expect" de la ecuación.
Saludos.