O jpql contem um erro se houver a venda de um mesmo produto em pedidos diferentes. No order by deve contem também a função de agregação SUM() para o correto funcionamento.
public List<RelatorioDeVendasVo> relatorioDeVendas() {
String jpql = "SELECT new br.com.alura.loja.vo.RelatorioDeVendasVo("
+ "produto.nome, "
+ "SUM(item.quantidade), "
+ "MAX(pedido.data)) "
+ "FROM Pedido pedido "
+ "JOIN pedido.itens item "
+ "JOIN item.produto produto "
+ "GROUP BY produto.nome "
+ "ORDER BY SUM(item.quantidade) DESC";
return em.createQuery(jpql, RelatorioDeVendasVo.class)
.getResultList();
}