Dear Bruce,
I also believe that this might not possible with Solve/NSolve. As you say FindRoot does appear to work.
pdf = KumaraswamyDistribution[a, b];
FindRoot[{Mean@pdf == N[16/35], Variance@pdf == N[201/4900]}, {{a, 1}, {b, 1}}]
It gives
{a -> 2., b -> 3.}
If you substitute that, you see that the result is correct (within the numerical precision). It does appear thought that you need to give the initial estimates.
Without them it does not work. As Frank says, Solve and NSolve are not really made for this, I assume.
Cheers,
Marco