Ok, eu mesmo encontrei a solução.
Como [class]*
corresponde a zero ou mais ocorrências, essa expressão correspondeu sempre que havia pelo menos um (em oposição a exatamente um) ponto dentro de um nome de arquivo.
Para fazer corresponder exatamente um, a posição do ponto precisa ser especificada. No meu caso, eu simplesmente adicionei os especificadores de posição "^" (início de uma linha) e "$" (fim de linha), de modo que agora o regex se traduz em "Linhas com exatamente um único ponto em qualquer lugar entre o início e o fim do linha "
where /r directory *.* | findstr /irc:"^[^\.]*\.[^\.]*$"