Questo perché ROWNUM è una pseudo colonna che implica che non esistono fisicamente. Puoi usare meglio rowid
per eliminare i record.
Per rimuovere i duplicati puoi provare in questo modo:
DELETE FROM mytable a
WHERE EXISTS( SELECT 1 FROM mytable b
WHERE a.id = b.id
AND a.name = b.name
AND a.rowid > b.rowid )