Olá, Philip, como vai?
O seu código atende corretamente ao objetivo da atividade e o uso do foreach foi uma boa escolha para percorrer a lista de notas, já que você não precisa trabalhar com índices e está apenas avaliando os valores existentes.
A lógica está clara, funcional e compatível com o enunciado. A verificação da média está correta e as mensagens exibidas correspondem ao resultado esperado para cada nota avaliada. Como ponto de melhoria, você pode simplificar a estrutura condicional utilizando um if seguido de else, evitando duas verificações independentes para a mesma condição.
Isso deixaria o código um pouco mais enxuto e fácil de manter, sem alterar o comportamento do programa.
Obrigado por compartilhar sua solução e continue utilizando o fórum para trocar experiências e tirar dúvidas, ele está à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!