Olá Yuri, tudo bem?
Primeiramente, parabéns pela solução do desafio!
Quanto à sua dúvida, o método next() do Scanner lê a entrada até encontrar um espaço em branco ou uma quebra de linha. Já o método nextLine() lê a entrada até encontrar uma quebra de linha, ou seja, ele lê toda a linha, incluindo o espaço em branco.
No seu caso, é possível que ao utilizar o nextLine() para ler o nome do produto, ele tenha lido também a quebra de linha que você digitou após o nome, o que acabou gerando um comportamento inesperado no seu código.
Uma solução para esse problema seria utilizar o nextLine() duas vezes: uma para ler o restante da linha após a entrada do nome do produto e outra para ler a próxima linha de entrada.
Por exemplo:
Scanner scan = new Scanner(System.in);
System.out.println("Digite o nome do produto:");
String nome = scan.nextLine();
// Lê o restante da linha após a entrada do nome do produto
scan.nextLine();
System.out.println("Digite a descrição do produto:");
String descricao = scan.nextLine();
Espero ter ajudado a esclarecer a sua dúvida. Se precisar de mais alguma ajuda, é só perguntar!
Espero ter ajudado e bons estudos!