> Is there a specific reason?
You'd probably get the best answer by finding a programmer that fits such a description and asking them.
> If so, what is it?
I can't think of a reason to categorically avoid using the default access modifier.
> Or is it a good to use default access modifier?
It's a good idea to use it when the situation calls for it; i.e., the design requires package visibility of a member, but no more.
~
Some prefer to grant or limit access to an object by the interface they expose. In this case all methods are either public or private. Access is restricted based on the fact that only the appropriate code is given references of certain interface types and if code does not have the right interface, they can not access the method.
Its a different style, but I use it myself quite a bit. This way I never am concerned over if it should be public,private, protected or default. The choice is simpler. But sometimes it can make you create interfaces for really simple things which I am not uptight enough to do...