This is evil, and unnecessary. If you don't want to expose an IQueryable for whatever reason, and you don't want to write separate methods for each query, use static reflection. But please, don't abuse dynamic like this.
That said, it's probably more relevant if you need to call the repository from DLR languages. And in that case you might as well choose to write the repository class in the DLR language, which will presumably have native support for dynamic method resolution.