Interesting. Got any links so a beginner can start looking into this?
It mainly depends on how deep you want to jump into the rabbit hole.
For the absolute DOS beginner who just wants to put some pixels on the screen, you could just use something like QBasic running in DOSBox. There is a surprisingly active QBasic development community out there even today, with sites like Pete's QBASIC Site and qbasic.net hosting the most information. You can get pixels on the screen with just a couple lines of code, though speed will leave something to be desired.
The way I originally got started with DOS development, back in the day, was in C, using DJGPP and the Allegro graphics library. The first game I ever completed (a mode 13h Tetris clone, way back in 1997) was done this way. Both are still available (the latest versions of Allegro no longer support DOS as far as I know, though downloads of the 3.x and 4.x versions of the library are also available from the site). If I wasn't in experimentation mode right now and just wanted to make a DOS game, this is how I'd go about doing it.
My current interest centers around some of the lesser-documented modes on older video cards like the CGA. Jason Knight (the author of Paku Paku, a Pac-Man clone that runs on really old DOS hardware) has done a lot of work to make the little-used 160x100, 16 color text 'graphics' mode available on even newer hardware, and I've been using that as the basis for some experimentation, and as an excuse to relearn Turbo Pascal and to brush up on x86 assembly language. All completely useless from a 'marketable skill' standpoint, but I find it fun so who cares?
(I don't really want to derail this thread any more, and I hardly consider myself an expert on all things retrocomputing based, but perhaps a DOS-oriented retrocomputing/development thread might be an interesting thing to do someday. For now, I'm glad to have an excuse to put my Dreamcast to work again. )