Because this is how IMAP works. IMAP protocol uses UIDs, it doesn't use Message-IDs.
Message-ID is not unique across folders. You can upload exactly the same message (with the same Message-ID) to two different folders. Most servers would even allow uploading the same message twice to the same folder.
You can search IMAP for particular Message-ID of course - use Imap.Search and Expression.MessageId:
List<long> uids = imap.Search(Expression.MessageId("1234@example.com"));
Side note:
Message-ID is assigned by client, just before sending email, there is no guarantee for it to be unique. There's also no guarantee that this email header is even present.