MERGE combina a lógica INSERT, UPDATE e DELETE em uma instrução DML e, portanto, é atômica. Se você estiver fazendo UPSERTS de linha única, as vantagens serão menos óbvias. Por exemplo, uma implementação ingênua de um UPSERT pode ter a seguinte aparência:
IF EXISTS (SELECT * FROM t1 where example@sqldat.com)
UPDATE t1 SET ... WHERE example@sqldat.com
ELSE
INSERT INTO t1 (...) VALUES (...)
No entanto, sem envolver isso em uma transação, é possível que a linha que vamos atualizar seja excluída entre o SELECT e o UPDATE. Adicionar lógica mínima para resolver esse problema nos dá isso:
BEGIN TRAN
IF EXISTS (SELECT * FROM t1 WITH (HOLDLOCK, UPDLOCK) where example@sqldat.com )
UPDATE t1 SET ... WHERE example@sqldat.com
ELSE
INSERT INTO t1 (...) VALUES (...)
COMMIT
Essa lógica não é necessária com a instrução MERGE.
Não há comparações que devam ser feitas entre CURSORS e a instrução MERGE.