Così ad occhio non vedo errori di sintassi (magari c'è qualche carattere non stampabile che gli sta dando fastidio)
Ma se provi a riscriverla senza l'uso della CTE, che non serve in un caso come quello?

codice:
DELETE
FROM movimenti_magazzino
WHERE id_macchina NOT IN (
   SELECT id
   FROM macchina
   WHERE id_tipo_scaffali = 3
)