LibNDS is "closer to the hardware", allows more "control" over the hardware and what the acctual code does, but at the same time it's more tedious and complicated. NightFox, much like PaLib and equivalents, does alot "for you".
So to put it crudely, using no LibNDS would be like writing in ASM (probably technically not true, but it's just an analogy to make things clear), using LibNDS is like using C++ and NightFox is like using Allegro or SDL or such?