Olá Pablo, tudo bem?
A conta que está sendo feita no seu for é a seguinte:
*Leve em consideração o valor das variáveis
A primeira interação ficaria
fatorial = 0 * 1 - 0;
Dessa forma o valor atribuido para fatorial seria 0 e continuaria contendo esse valor por todas as interações seguintes por causa da expressão que está sendo feita dentro do laço, a única coisa que mudará será o número de "i" por causa do auto incremento "i++", o que não importa já que ele sempre será multiplicado por zero(0). 
Além disso o que está sendo exibido pelo "System.out.println("Fatorial de " + i + " = " + i);", são as posições de i que está sendo concatenado duas vezes.
Portanto para atender as requisições do exercício pode-se utilizar a variável fatorial e inicia-la com o valor "1" e dentro do laço apenas multiplicar a variável i, do laço,  pelo fatorial e atribuir esse resultado para ele mesmo, ou seja, fatorial = fatorial * i; ou fatorial *= i;. E ao invés de concatenar duas vezes a variável i no  System.ou.println() coloque-a apenas o fatorial de qual número está sendo feito e para exibir o resultado do fatorial concatene a variável "fatorial" .