This is addressed, or rather handwaved, in Rise of Skywalker. The Holdo Maneuver is said to be a one-in-a-million long-shot. It was only possible because the Rebels had days to plan it out (and presumably perform the required hyperspace calculations) and because their enemy was stupid enough to put itself in a big long line directly behind the ship they were chasing.
Beaumont leaned forward. “We need to do some Holdo maneuvers,” he
said. “Do some real damage.”
Before Poe could answer that they couldn’t afford to sacrifice anyone,
Finn jumped in with “C’mon that move was one in a million. Fighters
and freighters can take out their cannons if there are enough of us.”
Rise of Skywalker: Official Novelisation
Note that this is then subverted (a second time) at the end of Rise of Skywalker as we see a Star Destroyer cut in half in the sky above the Forest Moon of Endor, apparently the result of a freighter doing "a Holdo Maneuver" on them.
Holdo Maneuver: Above the Forest Moon of Endor a Resurgent-class Star
Destroyer was split in two by a heavy freighter entering hyperspace on a collision course.