Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
Well, in short it's because the expression is not actually executed as such. Sitecore attempts to translate your C# expression into a Lucene query. From your log you can see that it translated x.ItemId.Guid into _group.guid - a field that doesn't exist in your index.
The log you posted looks correct, at least if you are using the default index configuration. Are you using the default configuration? If not, could you show your index configuration? I'm mostly interested in which fields are included and their names.
There seems to be a data mapper for both NameValueCollection and Dictionary<,> types (and has been for a few years) which both uses HttpUtility.ParseQueryString() under the hood, so theoretically your code should work unless you are using a very old version. Have you tried using Dictionary<string, string> instead?