It's ugly, but would it be possible to call ethernet.begin() once to get a dynamic address, and then again to use that as a static address with your required DNS server?
I suppose the proper solution would be to configure your DHCP server to nominate the DNS server you want to use (which is something that I wouldn't expect an embedded DHCP server to support), or configure your default DNS server to delegate to the DNS server you want to use (which even an embedded DHCP server may support).