Você está instanciando de forma errada a sua matriz, porque precisa associar as notas à um aluno, eu iria sugerir que você crie uma lista para somente você armazenar os nome dos alunos alunos, e depois criar uma matriz de notas no qual cada linha seria correspondente ao index de alunos e as notas as colunas.
Primeiro que você tá instanciando apenas uma lista de tamanho 5 para notas para vários alunos. enquanto você poderia criar normalmente na matrix 4 colunas.
Outra coisa, instancie as variáveis de soma dentro do loop, senão ele vai pegar o valor da ultima operação.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String[] nome_aluno = new String[50];
double[][] nota_aluno = new double[50][4];
Scanner sc = new Scanner(System.in);
String opcao = "s";
for (int i = 0; i < nome_aluno.length; i++) {
double soma = 0;
System.out.println("Insira o nome do aluno");
nome_aluno[i] = sc.next();
for (int j = 0; j < 4; j++) {
System.out.println("Insira a nota n" + (j + 1) + " do aluno " + nome_aluno[i]);
nota_aluno[i][j] = sc.nextDouble();
soma = soma + nota_aluno[i][j];
}
double media = soma / 4;
System.out.println("media do aluno " + nome_aluno[i] + " é: " + media);
System.out.print("Deseja Continuar? <s/n>: ");
opcao = sc.next();
if (opcao.equalsIgnoreCase("n")) {
break;
}
}
}
}
O seu segundo for nunca vai acontecer por que não tá contemplando a condição:
notas.length<4 nunca vai ser true
porque notas.lenght = 5.