Q:

Erro ao utilizar Split dentro do Select

Por que a exceção abaixo ocorre ao usar Split dentro de um Select em um IQueryable? 

The LINQ expression node type 'ArrayIndex' is not supported in LINQ to Entities. 

Eu já consegui resolver o problema usando ToList e fazendo o Select com Split nele, mas gostaria de entender qual é o motivo do problema. 
Assim ocorre exceção:
var retorno = entities.tabela. Where(x => x.coluna1 == null)
    .Select(x => new { Campo1 = x.coluna1, Campo2 = x.coluna2 });

retorno = retorno. Select(x => new { x.Campo1, Campo2 = x.Campo2.Split(' ')[0] });

Assim funciona:
var retorno = entities.tabela. Where(x => x.coluna1 == null)
    .Select(x => new { Campo1 = x.coluna1, Campo2 = x.coluna2 }).ToList();

retorno = retorno. Select(x => new { x.Campo1, Campo2 = x.Campo2.Split(' ')[0] }).ToList();

A:

Eu já consegui resolver o problema usando ToList e fazendo o Select com Split nele, mas gostaria de entender qual é o motivo do problema. 

O motivo começa nesta explicação.  Sem resolver a enumeração, seu IQueryable tenta passar o Split para um equivalente em SQL, o que não existe.  
Há de se entender que DbSet implementa tanto IQueryable quanto IEnumerable.  Ao chamar ToList(), você pede ao LINQ para resolver a enumeração, e assim ele executa o SQL.  Como o Split no segundo exemplo ficou para a coleção já resolvida, o Select atua sobre a coleção em memória, e não mais geração de SQL. 