Olá Daniel,
O problema é que você está modificando a lista enquanto executa o for, então você está afetando o funcionamento do for.
Isso acontece porque o for funciona baseado no tamalho da sua lista, então quando você remove um elemento o tamanho da lista muda e o for pula um elemento.
Tudo que você tem que fazer é criar uma cópia da lista antes do for, e utilizar essa lista na linha inicial do for:
def nao_e_quatro(lista):
lista_temp = lista.copy()
for not_quatro in lista_temp:
if len(not_quatro) != 4:
lista.remove(not_quatro)
return lista
print(nao_e_quatro(['Ryan', 'Cool Man', 'a', 'farofa', '12', 'fregref']))
Espero ter ajudado, qualquer dúvida é só falar!