It seems to be matter of which method--FindMaximum vs. NMaximize--is used to maximize the Likelihood function (or more probably the log-likelihood function). Since it is possible to get an analytic form of the likelihood function of the binomial distribution given some data:
SeedRandom[1];
nSamplePoints = 10;
data = RandomVariate[ BinomialDistribution[10, 0.1], nSamplePoints ];
likelihood = Simplify[
Likelihood[BinomialDistribution[n, p], data]
, Assumptions -> {n >= 2}];

Then you can plot this function with ContourPlot (of course n is probably an integer but that's a detail for this purpose):

How to ascertain which combination of n and p gives the maximum likelihood (the mountain top on the contour plot) is a huge topic and there is a whole raft of documentation on function maximization in Mathematica's help. If you have the analytic form, you usually want to use the default method (which then uses the Automatic method of FindMaximum) instead of NMaximize, which doesn't have any knowledge of the gradient of the function to aid it in climbing up the hill but still does the best it can.
In your case, I think that it is even more acute since the likelihood function is so sharp given the very low value for p. (I suspect its overwhelmingly zeros in your data)