If you hover over “Mode” in that menu (the label, not the field), a tooltip explains what each mode does (you can do this for anything btw, in the Inspector too). My understanding is that the mode indicates exactly what will be stretched: the actual assets, or the viewport.
The difference comes in how “half a pixel” is handled. With canvas_items mode, it isn’t handled very well because sprites are quantized (they’re discrete in the mathematical sense of the word); you simply can’t have half a game pixel because such a concept doesn’t exist for them. As a result, you can end up with the occasional scanline in your assets due to rounding errors, sort of like an old Atari console (these are the “scaling artifacts” that the tooltip mentions).
By comparison, the viewport mode can handle “half a pixel” much better because your monitor is not quantized like this; it can just adjust a screen pixel’s colour to soften any edges. This is my interpretation of it all; maybe it’s not 100% accurate, but this is more or less what’s going on.