Tratando-se de Generics, os tipos genéricos tanto da referência quanto da instância devem ser iguais.
O que vc está tentando fazer na prática quando não compila, é isso:
List<int[]> l2 = new ArrayList<int[]>(); //isso é o que retorna do método Arrays.asList(new int[]{1, 2, 3});
List<Object[]> l3 = l2; //essa é a atribuição q vc está tentando fazer
Repare que ao usar “List<int[]> l1 = Arrays.asList(new int[]{1, 2, 3});” vc tem o tipo “List<int[]>” tanto na referência “l1” quanto na instância retornada pelo método. Que fazendo uma analogia com o exemplo q citei acima, seria isso:
List<int[]> l2 = new ArrayList<int[]>(); //isso é o que retorna do método Arrays.asList(new int[]{1, 2, 3});
List<int[]> l3 = l2; //atribuição válida pois tanto a instância quanto a referência possuem o tipo genérico <int[]>