To define collision-resistance for a fixed hash function $H$, it probably looks like this:
CR: There is no efficient attacker (i.e., with polynomial computational resources) that can find two messages $m_0\neq m_1$ such that $H(m_0)=H(m_1)$ with non-negligible probability.
However, this is problematic because such an attacker may indeed exist but we just cannot find it easily. From the pigeonhole principle, we know for sure that there are two colliding messages for $H$. So, there exists a very efficient attacker who can simply output these two messages and break the above security.
To deal with this issue, one may attempt to rephrase CR as "It's hard to construct an attacker...". But then you got stuck on defining "hard to construct" formally, while in practice this is OK.
So, an easy fix is to introduce a large key space $K$ such that it's hard for any efficient attacker to output colliding messages for a randomly-chosen hash function $H_k$ (where $k\gets K$). Note that even if the attacker is given all colliding messages for all keys, it cannot "digest" them easily compared to the case with a fixed hash function because storing all colliding messages requires exponentially-large space (linear to the size of the key space) while the attacker has only polynomial computational resources.