As grau pointed out it isn't the number of zeros that matter but the exact target.
For any difficulty the target value can be computed. They have an inverse relationship. As difficulty rises the target gets smaller (lower %of hashes will be below the target hence it is "harder" to find a valid hash).
Right now.
The current difficulty is 3370181.7992778
The current target is 0000000000000
4FA620000000000000000000000000000000000000000000000
So for example a hash beginning with 0000000000000
5 would be invalid as would a hash beginning with 0000000000000
4FA63 however a hash beginning with 0000000000000
3 would be valid despite all three hashes having the same number of zeros.
You example hash is valid because it is smaller than the target
000000000000039ce32a9b18b1c676f14658ee02ae15dd5791f8604ae2d31968 <- block hash
00000000000004FA620000000000000000000000000000000000000000000000 <- target (for difficulty 3370181.7992778)
The target for difficulty 1 is:
00000000FFFF0000000000000000000000000000000000000000000000000000
The smallest hash is:
0000000000000000000000000000000000000000000000000000000000000000
The largest hash is:
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Relationship between difficulty, number of hashes to solve a block, and the target.You will notice in the range of 0000... to FFFF .... roughly 1 in 2^32 hashes will be below the difficulty 1 target. It requires roughly 2^32 hashes to find one which is valid at difficulty 1. Current difficulty is 3370181.7992778 the current target is 3,370,181x smaller than the difficulty 1 target. On average it will require (2^32) * (3370181.7992778) hashes to find one smaller than the current target.