Certo,
Essa é uma dúvida de java e não de Android.
O compilador exige esse final no seu
final Aluno aluno = (Aluno)...
Porque ele esta sendo usado dentro de uma implementação de uma classe anônima.
Ao executar esse new abaixo:
deletar.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
Você esta fazendo uma implementação de uma classe anônima, ou seja, esta simplesmente instanciando uma classe, assim como você faz com qualquer outra.
Mas o fato de ter q usar o final é para garantir que a instancia do seu Aluno não sofra alterações, afinal de contas vc esta passando a instancia do seu aluno para uma nova instancia(no caso a classe anônima que vc acabou te instanciar).
Da uma olhadinha em Classe anônima de java. É um assunto muito legal.
Ajudei a esclarecer ?
Abraço!