As db38x noted, SendGrid is likely encoding a bunch of data in the link to keep things simple/fast on the back end. Possibly it's the actual target URL and some associated data like the link text.
It's also likely that they're conservative on the encoding they use to prevent issues with different email clients (looks like Alphanumeric, dash and underscore only).
That saves them tracking all that data in a database, which I presume at SendGrid's scale is quite a lot.