Also, how are you powering your board, and have you measured Vcc at the board? While USB is "nominally" 5V, it can be a couple tenths of a volt below that by the time it gets through assorted protection circuits and cables...
Sorry, but you left out one important detail: which Arduino board are you using? This matters because some Arduino’s include built-in USB protection circuitry that causes a slight voltage drop from the USB power input. This protection prevents voltage from feeding back into your computer and potentially damaging it.
For example, my original UNOs run at about 4.6 V for this reason.
Since you did not specify otherwise, I am assuming your board is powered through the USB port on your computer. The voltage range for a USB 2.0 port is typically 4.75 V to 5.25 V, though newer specifications allow it to go up to 5.5 V.
If my assumption is wrong and you are powering the board through Vin, keep in mind that a regulator like the LM7805 typically outputs between 4.8 V and 5.2 V. I am not certain which regulator your specific board uses, though.
If VCC = 5V (or close), you will get minimum (guaranteed) 4.1V (VOH) at the digital pin after executing digitalWrite(DPin, HIGH). Be sure that you have connected a load of 2.2k resistor with the digital pin.
If it woroks in theory, there is a chance that it will work in practice.
If it does not work in theory, it will never be working in practice.
Exception:
In China, many years ago, a foreign logging company predicted based on the interpretation of their real-time logging data that no oil-bearing zone existed in the subsurface The Chinese disagreed with this assessment. They proceeded to run the casing and perforate it anyway— and to everyone’s surprise, oil began to flow.