Why do some EMI/RF shields have holes on the top and some don't?
Advantages of holes in shield:

Allows some air flow for better heat dissipation.  This is the primary reason.

Less weight.



Small holes don't really compromise the shield, as long as the holes are significantly smaller than the wavelength of what you want the shield to attenuate.

As a aside, you won't ever see long slots in RF shields. If a larger overall opening is desired, it will be accomplished with a array of holes.  The shield is then still a mesh in that area, which is mostly as good as solid, as long as the individual holes are small compared to the wavelength.

A single long and thin slot is actually a antenna.  Imagine a conducting sheet with RF current flowing in one dimension.  A slot perpendicular to the current flow has the same characteristics as a dipole antenna.  In fact, such things are called slot antennas.  Obviously it would be bad to add slot antennas to something intended to be a shield.