Esto suele deberse a duplicados en la consulta especificada en la cláusula USING. Esto probablemente significa que TABLE_A es una tabla principal y se devuelve el mismo ROWID varias veces.
Podría resolver el problema rápidamente usando DISTINCT en su consulta (de hecho, si 'Y' es un valor constante, ni siquiera necesita ponerlo en la consulta).
Suponiendo que su consulta sea correcta (no conozca sus tablas), podría hacer algo como esto:
MERGE INTO table_1 a
USING
(SELECT distinct ta.ROWID row_id
FROM table_1 a ,table_2 b ,table_3 c
WHERE a.mbr = c.mbr
AND b.head = c.head
AND b.type_of_action <> '6') src
ON ( a.ROWID = src.row_id )
WHEN MATCHED THEN UPDATE SET in_correct = 'Y';