Dentre esses 4 eu colocaria o Nest como um framework, enquanto os outros 3 são pacotes para gerenciamento de requisições HTTP. O Nest se aproxima mais de um framework por alguns motivos:
- Ele é opinado, você precisa seguir o padrão dele para que as coisas funcionem bem (inspirado no Angular);
- Ele engloba diversos pacotes dentro dele e ja traz várias coisas "prontas", precisando apenas configurar, como gerenciamento de requisições HTTP (ele utiliza Express ou Fastify internamente para o gerenciamento das requisições), filas, conexão com banco de dados, eventos, logging, validação, graphql, microserviços, etc.;
- Ele gerencia toda a parte de injeção de dependencia da sua aplicação;
- Ele possui uma cli em que é possivel gerar toda a estrutura de um endpoint com um comando;
- Já vem com muita coisa configurada por padrão, como lint, testes e typescript(caso utilize);
Então comparado ao restante da lista ele é muito diferente, pois já traz um conjunto de ferramentas desenvolvidas utlizando vários pacotes famosos dentro do ambiente node e testadas, onde basta um import e está disponivel. É uma otima opção no quesito produtividade e em projetos em que voce não vai precisar ter tanto controle sobre os detalhes da sua aplicação.
Mas para quem está iniciando os estudos recomendo começar com o express, porque voce meio que vai ter que aprender a fazer tudo do zero, gerenciar e configurar os detalhes da sua aplicação, como lint, testes, typescript, injeções de dependencia, configurar filas, eventos, banco de dados, etc.
Coisas que o Nest já traz pronto voce vai precisar fazer do zero e isso é ótimo pro aprendizado e até mais para frente entender o que rola por traz do framework e decidir se vale a pena utilizar ele.