Tja, det låter som att ditt namnfält inte är unikt. Din underfråga matchar mer än en rad, så du måste antingen hitta ett unikt id att matcha på annat än namn, eller så gör du så här om du bara vill ta det första resultatet från underfrågan:
UPDATE TABLE1 SET ID = (SELECT TABLE2.ID FROM TABLE2, TABLE1
WHERE TABLE1.NAME=TABLE2.NAME LIMIT 1) WHERE TABLE1.ID IS NULL