Isso ocorre porque ROWNUM é uma pseudo coluna que implica que eles não existem fisicamente. Você pode usar melhor
rowid
para excluir os registros. Para remover as duplicatas, você pode tentar assim:
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 )