Isso acontece porque a propriedade justify-content centraliza o conteúdo horizontalmente no elemento pai, mas não centraliza verticalmente. Para centralizar o conteúdo verticalmente usando o Flexbox, você precisa usar a propriedade align-items como você mencionou.
Ao usar display: flex em um elemento pai, você está criando um container flexível que pode ser usado para posicionar e alinhar os itens dentro dele. Com a propriedade align-items: center, você está dizendo ao navegador para alinhar verticalmente os itens dentro do container, colocando-os no centro do eixo transversal.
É importante lembrar que o Flexbox é uma ferramenta poderosa para a criação de layouts responsivos e dinâmicos. Ao usá-lo, você pode facilmente ajustar a posição e o alinhamento dos elementos em diferentes tamanhos de tela e dispositivos.