Esta troca não faz sentido, amigo. A forma que ele usou está correta, pois produto simboliza a variável de cada produto na lista de produtos, onde var é o produto de cada laço e value é a lista de produtos no bean.
Outro ponto é que não existe um atributo produto no ProdutoBean, o que ocasionaria outro erro.
Minha sugestão é mesma do Weverton, falta a annotation de @ManagedBean ou o registro do bean no faces-config.xml. Exemplo:
@ManagedBean
@ViewScoped
public class MinhaClasse (){}
Veja tb se o FacesServlet está devidamente registrado no web.xml do projeto.
Se quiser “testar” a criação do bean, crie um método qualquer dentro do MB, anote-o com @PostConstruct e printa algo nele. Desta forma vc verá se o MB foi criado. Exemplo:
@ManagedBean
@ViewScoped
public class MinhaClasse (){
@PostConstruct
public void init(){
System.out.print("Bean criado com sucesso....");
}
}