Depends on the mode it was running in. Real mode Windows 3.0 was pretty much just a basic shell. Some basic drivers for things like graphics (though not many worked in real mode Windows) and some input devices but that was about it.
Standard mode got a little more interesting - it used the 286 Protected Mode to provide better memory management, better DOS box support, and the like. It didn't use DOS for memory management anymore, but was limited by 16-bit limitations of 64kb segmentation. Made memory management super fun.
386 Enhanced Mode is where things got interesting. It was a full on 32-bit VMM that more or less ran a copy of Standard Mode Windows. But it enabled a lot of 32-bit stuff, including file and disk access if your hardware had the right drivers and support. If the stars aligned and your hardware supported it, you could bypass DOS and the BIOS for pretty much everything even in Win3.1/WFW311. Even as far back as Windows/386 (a version of 2.x) you got some benefit of 32-bit protected mode memory management and multitasking. There just wasn't a lot that used it yet.
The upshot is, at least on some modes, Win3.x could cross off most aspects of being an operating system vs. a shell, since it certainly wasn't simply limited to DOS stuff. That's a weird myth that keeps hanging on.