Você literalmente nunca viu ou usou matrizes? Nós os usamos o tempo todo, além de listas. Geralmente não usamos Java, mas usamos muitas outras linguagens que desenham semelhanças óbvias.
Entre matrizes e Listas, um é mais leve e, além disso, mais direto ao ponto, enquanto o outro tem mais funcionalidade. Como regra geral na programação, quando existem dois tipos semelhantes que são basicamente divididos nessas linhas, você deve optar pelo mais leve, a menos que realmente precise do mais sofisticado. Além de reduzir a sobrecarga, isso realmente ajuda a controlar a quantidade de confusão e o estado no programa e, principalmente, seu código . Se algo der errado durante o teste, você terá menos lugares para procurar; e mais importante, no caso de matrizes x listas, as pessoas têm uma idéia melhor do escopo limitado do que você está realmente usando e tentando fazer com ele.
E sim, do ponto de vista acadêmico, há o motivo adicional de ensinar aos alunos o básico. No entanto, isso vai um pouco mais fundo. Matrizes e listas são um bom exemplo de tipos mais volumosos, muitas vezes apenas sendo criados sobre, e frequentemente envolvendo, instâncias subjacentes dos tipos mais leves. Mesmo quando as listas não têm matrizes subjacentes, elas se comportam externamente como elas. Uma parte de ensinar a alguém o que é uma lista seria ensinar a eles o que é uma matriz.
Eu pude ver isso talvez ficando fora de controle em uma linguagem como C ++, onde as matrizes basicamente não poderiam ser mais reduzidas do que são, mas em linguagens de nível superior, elas são quase listas por si mesmas. Se eles atendem perfeitamente às suas necessidades em uma determinada situação, por que você precisaria usar outra coisa?