Ola Ronald.
Então isso é pela diferença das abordagens do forward e redirect. E também lembrando que qualquer arquivo dentro de WEB-INF é inacessível externamente.
Assim, no forward a servlet indica ao container web qual pagina ou endereço interno ele deve percorrer. Como é uma "conversa" entre a servlet e o servidor java, você pode indica-lo para um caminho de pagina que esteja dentro do WEB-INF, que será alcançado com sucesso. Após ler o arquivo com sucesso, o servidor faz 1 response ao navegador com aquele conteúdo.
Já no redirect a servlet indica um endereço externo, pois ela já cria 1 response ao navegador com status http 302. O navegador ao receber esse retorno com esse status, automaticamente cria uma nova request para o endereço indicado, que após processar no servidor java, faz um segundo response com o conteúdo. Dessa forma é impossível no redirect indicar um arquivo dentro do WEB-INF, pois o navegador ao tentar acessá-lo não iria conseguir.
Forward:
Servlet --> WebContainer --> Response ao navegador
Redirect:
Servlet --> Primeira response ao navegador URL e status http 302 --> Navegador automaticamente cria request na URL --> WebContainer --> Segunda response ao navegador