Well, you could always create a "grep" command. After all, if you can run 'symbolic-ref', what's grep?
One issue will be that gitolite's restrictions on allowed characters would put a crimp in arbitrary regexes being supplied. (If someone really, really wants this -- and by that I mean they ask on the mailing list and at least a couple more people chime in saying "yes we want it!"), I could create a way to allow some programs to have unrestricted arguments. That code is just waiting to be pulled off from the 'git-annex' branch, but getting no love for testing, so far).
You could even make it search multiple projects. For example, to make it search all the projects the user has read access to, you could start with this:
gitolite list-phy-repos | gitolite access % $GL_USER W any | grep -v DENIED | cut -f1
and then for each repo that comes up with, you cd into it and run 'git grep'
The next stage in complexity would be a list of repos you want to search/not search (because you just happen to be the guy who has access to all the repos, and that's not really what you want!). This gets a little harder to design effectively. It may be easier to mark searchable repos in the conf file itself, using a groupname of some sort. The grep command could easily check for membership in that special group as an additional constraint.
Sitaram