I almost always use lodash.
As others have pointed out it is strongly performance oriented and can be imported in a piecemeal fashion for minimal bundle sizes.
One more very practical reason is that if you know the lodash API well you can defer almost all of your null/undefined/edge-case checks to lodash.
I am very particular about unnecessary branching and superfluous code that usually litters imperative code making it difficult to reason about the behavior.
Lodash (along with a few conventions) helps me get rid of this cruft significantly.
For example: Lodash map ,forEach etc will do the null check for you and won't complain if your collection is actually null. invoke can handle invocation of functions which may be missing. get, set allow you to safely work with deeply nested objects.
FP's curried functions and data last approach takes a while to get used to but can heavily cut down on the lots of trivial functions that are omnipresent in most javascript codebases which exist "just" to compose pieces together, and have no behavior on their own.
The primary idea is to structure your code in such a way that the control flow can focus on the happy path and a reviewer/future maintainer does not have to be bogged down by edge case handling code while reading it.
Practices like newspaper pattern also significantly help in this regard.
Of course there are more sophisticated ways towards this goal, but for javascript projects, especially where you are not the instigator, lodash is, in practice, one of the least intrusive options that is either already present or can be pulled in with no objections from current team.