Middleware roda "no meio do caminho" de uma requisição: antes dela chegar na página ou API final, dá pra checar autenticação, redirecionar, ou modificar cabeçalhos.
No Next.js (a partir da versão 16, esse arquivo se chama proxy.ts), é exatamente esse padrão que protege o /admin deste site: antes de qualquer página daquela pasta renderizar, o middleware verifica se existe uma sessão válida e redireciona pro login se não houver.