Why don't Mercury and Venus have moons?

Most likely because they are too close to the Sun. Any moon with too great a distance from these planets would be in an unstable orbit and be captured by the Sun. If they were too close to these planets they would be destroyed by tidal gravitational forces. The zones where moons around these planets could be stable over billions of years is probably so narrow that no body was ever captured into orbit, or created in situ when the planets were first being accreted.