All Pokemon have to have a catch rate. For example, baby Pokemon cannot be found in the wild, they have catch rates.
There are some other possible reasons why event legendary Pokemon have catch rates.
Event Legendaries can be captured sometimes.
Some events just give you access to the place where you catch the event legendary Pokemon, such as the liberty island event where instead of it being just given to you, you had to catch it.
Gamefreak may have given the event legends catch rates for a just-in-case situation. GF might not know what events they will do for the Pokemon game they released. They might decide they want to have a Darkrai event where you have to catch it, but whoops! We can't have the event like that because Darkrai doesn't have a catch rate. They might also want to have a game based on that event legendary Pokemon, if they already have a catch rate figured out it saves them a little bit of time.
It may also be for hacking. GameFreak most likely knows that people will hack the event legends into the wild. If the legends had no catch rate it could possible break the game.
This question is also like the "Why do shiny locked Pokemon have shiny forms?" question, for just in case.
Hope I helped!