Questão um pouco complicada pois a resposta depente muito do contexto, por exemplo, conforme http://www.dba-oracle.com/t_exists_clause_vs_in_clause.htm :
"A cláusula EXISTS é muito mais rápida do que IN quando os resultados da subconsulta são muito grandes. Por outro lado, a cláusula IN é mais rápida do que EXISTE quando os resultados da subconsulta são muito pequenos."
É preciso considerados alguns conceitos da álgebra relacional, bem como, neste caso específico entender bem o funcionamento da cláusula WHERE. Sem entrar muito na questão teórica, observemos o seguinte:
primeiro ponto: é preciso considerar que nas duas consultas temos sub-consultas (uma na cláusula IN e outra na cláusua EXISTS), isso é algo que geralmente compromete o desempenho de qualquer consultar, por isso é sempre preferível a utilização de joins
segundo ponto: ambas efetuam comparções em uma coluna indexada (toda chave primária é indexada). se uma consulta utilizasse um campo indexado e outra não, isso poderia interferir (mas não é o caso)
Apesar do fato de que o autor considerar o volume de dados um fator relevante para a avaliação da performance entre os dois operadores em questão, temos que observar o seguinte, o que torna a segunda consulta menos performática é o fato de que se comparadas as consultas nela acaba ocorrendo uma verificação a mais, pois além do true/false avaliado pelo operador EXISTS há uma verificação na cláusula WHERE da sub-consulta, ao passo que na primeira ocorre somente uma avaliação no operador IN.
Para ficar mais fácil de exemplificar:
na primeira consulta, para cada uma tupla das 200.000 tuplas da tabela X haverá uma verificação se a chave dessa tupla (da tabela X) se encontra NA tabela resultante da sub-consulta na tabela Y (100.000 tuplas).
Já na segunda consulta, para cada uma tupla das 200.000 tuplas da tabela X haverá uma verificação se EXISTE alguma tupla resultante de uma segunda verificação (uma segunda cláusula WHERE), onde (e é aqui o desempenho é menor) a sua sub-consulta verifica em cada uma de suas 100.000 tuplas se a chave da tabela X é igual a chave de cada uma das 100.000 tuplas de Y.
PERCEBAM QUE NA SEGUNDA CONSULTA POR CONTA DA CLÁUSULA WHERE OBRIGATORIAMENTE A COMPARAÇÃO SERÁ FEITA PARA TODAS AS 100.000 TUPLAS DE Y, AO PASSO QUE NA PRIMEIRA CONSULTA ISSO NÃO OCORRE, POIS O OPERADOR IN NÃO PRECISARÁ PASSAR PELOS 100.000 REGISTROS DE Y PARA ENCONTRAR A CHAVE ELE PROCURA