When using dump D in FreeDOS's DEBUG.EXE the first time witout entering a segment or offset address, the CS segment is used. The second time, when an offset is added, the DS segment is used.
In MS-DOS's DEBUG, this is not the case, there, the DS segment is always used.
I made 2 screenshots, one with FreeDOS DEBUG, the other with MS-DOS DEBUG that show that.
It is intentional, as in https://hg.pushbx.org/ecm/ldebug/file/27bafee89139/source/ll.asm#l678 or https://hg.pushbx.org/ecm/fddebug/file/161e5a01a3d3/DEBUG.ASM#l6847
However, those seem to be accurate in reproducing the MSDebug code as in https://hg.pushbx.org/ecm/msdebug/file/62d3a72c1915/debcom2.asm#l1338
Your MS-DOS Debug example is meaningless because ds equals cs there. If you try
debug hello.exewith MS-DOS or MSDebug you will likely get the same output.