Right now the difference is that Google Public DNS does not use any
sort of redirection or display any ads. If a host (domain name, web
address, etc...) doesn't resolve, it will just fail. With OpenDNS,
they hijack these failures and redirect you to a search page that
displays ads and makes them money.
So far, Google Public DNS appears to be more concerned about speed,
security, and unobtrusiveness. I'm sure they'll make their money with
the data they collect from our queries instead of hijacking,
redirecting, and then making money off of them directly like OpenDNS
does.
From a user perspective, there's probably not any noticeable
difference between the two services other than a lack of an ad-laden
search page that comes up on OpenDNS if you miss-type a URL or if your
DNS lookup fails for some reason in your browser.