According to the DOSBox debugger, it gets stuck in an infinite loop poking/polling interrupts:
278407: CPU:Illegal/Unhandled opcode 63
278408: CPU:Illegal Unhandled Interrupt Called 6
278410: CPU:Illegal/Unhandled opcode 63
278411: CPU:Illegal Unhandled Interrupt Called 6
278413: CPU:Illegal/Unhandled opcode 63
278414: CPU:Illegal Unhandled Interrupt Called 6
278416: CPU:Illegal/Unhandled opcode 63
I wonder if the DOSBox developers are aware of this, and if you could interest them in fiddling around to see what the cause is. It could be something very simple.(Based on the fact that D86 was last updated in 2000 I doubt the author is going to be too interested in tinkering with it.)
---
HOWEVER!
D86 works just fine in QEMU - and, even better, if you use a CPU idle program for DOS to make QEMU not chew 100% of one core, the idle program will continue to have an effect even while D86 is running.
This being said, I have no idea how to use D86 :) and so cannot say whether an idler program will impact anything.
I tested with the IDLE.COM in "VMAdditions.iso" (date 3 Aug 2004, cksum 281796710). The program is so small (128 bytes FTW) that I see no issue with just
jMiO2DHAjsAmoaAAo/wAJqGiAKP+AIzIJscGoABAASajogC6GAC0Mc0huuIIkCCIdDO67giJdCu6+oECCIp0I/ v0+i7/LvwAqUgSCI2iuh4IkACOdAu6Zgj/dAO6KlDpQIE6ybo2UOg0deir/nIFA4Ctfv/DtE2/3s0YnXVARIc=
so you don't have to go index-of-/-hunting (you can just `base64 -d > idle.com` instead). I don't think whoever wrote this will mind :P
(Deliberately not using monospace for the block above to make things less visually jarring)