Because this game was made when dial-up internet was the standard, it came out on the dreamcast originally. Damage cancel exists because each person's client is off doing their own stuff, doing all their own calculations for damage and monster ai and the like, and you send only the bare minimum of data to the other players about things. With how the monster packet gets synced, it's nearly impossible to remove damage cancel from the game, not without completely rewriting the netcode to make the server handle calculations and override the players or something like that. Heck, the game doesn't even send other player's true position all that often, it only does it when it absolutely needs to like when they attack so your client knows where to render a bullet from, hence why people sometimes get stuck on a corner and then warp forward after a few seconds or them doing an attack. Other servers have tried to do band-aid fixes, but they are not a miracle cure and have their own drawbacks that arise from it; damage cancel is basically built into the game, actually truely removing it would be very difficult to do.