Cada función hash criptográfica es una función hash. Pero no todas las funciones hash son hash criptográficas.
Una función de cifrado criptográfico tiene como objetivo garantizar una serie de propiedades de seguridad. Lo más importante es que es difícil encontrar colisiones o pre-imágenes y que la salida parece aleatoria. (Hay algunas propiedades más, y "hard" tiene límites bien definidos en este contexto, pero eso no es importante aquí).
Las funciones hash no criptográficas solo intentan evitar las colisiones por información no maliciosa. Algunos intentan detectar cambios accidentales en los datos (CRC), otros intentan colocar objetos en diferentes cubos en una tabla hash con la menor cantidad de colisiones posible.
A cambio de garantías más débiles, suelen ser (mucho) más rápidos.
Todavía llamaría a MD5 una función hash criptográfica, ya que su objetivo era proporcionar seguridad. Pero está roto, y por lo tanto ya no se puede usar como un hash criptográfico. Por otro lado, cuando tienes una función hash no criptográfica, realmente no puedes llamarlo "roto", ya que, en primer lugar, nunca intentó estar seguro.