dll is a wrapper of MPL 2.0 C++ library. Can I use this dll in my commercial project (an executable dynamically calls a function of dll)? Will users be able to request sources of this dll only or all my whole project?
Consuming and distributing MPL-2.0 code is easy so long as you aren't making any changes to it. If all you're doing is using a compiled DLL as-is, things are going to be very straightforward.
All you really need to do is inform users of your application that you have a component in your project covered by the MPL-2.0 license and link to the DLL's source repository. You are responsible for keeping that link current in new versions of your application. See section 3.2 of the license for the exact text. This is usually handled by an application's About box.
As far as having to disclose all source in total, that's a clause in the GPL licenses that the MPL licenses simply do not have. Even if you modify the MPL-2.0 code in question, you still have to disclose that code only.