Esto se debe a que ROWNUM es una pseudocolumna, lo que implica que no existen físicamente. Puedes usar mejor rowid
para eliminar los registros.
Para eliminar los duplicados puedes probar así:
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 )