Ok, dado o exemplo incompleto, vamos lá.
O exercício quer que retorne True or False, se você fizer conjunto_x = [1, 3]
, ao pesquisar pelo conjunto_x[0]
(primeiro índice), ele retornará 1 ao invés de False, que é o valor no índice em questão.
Agora pense que ao invés de ter um índice de 0 a 9 numa lista de 10 itens, você dá um apelido para esses índices, um exemplo:
dict_y = {"beterraba": True, "laranja": True}
— Neste exemplo beterraba é o índice, True é o valor dentro dele
Se você pesquisar por dict_y["abacaxi"]
ou QUALQUER outra coisa vai dar False, pois não existe este índice/chave.
Por que o desempenho é diferente? O valor False ocupa espaço na memória. Imagine uma mesa como um espaço da memória, se você escrever em uma folha de papel "nada" e a colocar na mesa, em cima da mesa vai ter a folha de papel escrito "nada" ao invés de simplesmente não ter nada, entende? O fato de você falar que não vai responder algo em si já é uma resposta (decore e fixe isso, pois existe em todo lugar, é a mesma lógica que se aplica pra "Null" em Banco de Dados Relacionais ou a biblioteca do Python Pandas, é um valor existente que ocupa espaço na memória para falar que não existe nada ali)
O objetivo da questão é buscar índice x, y, z e ter um retorno específico de True ou False, mas os índices num Set automaticamente são de forma numérica e não dá pra pular, pra conseguir o índice 19 você PRECISA criar 20 itens, mesmo que alguns seja simplesmente pra dizer que não existe algo ali naquele espaço, já em Dict você declara apenas o que existe.