VST3 doesn’t really have a concept of ‘MIDI events’. Instead, it has its own note-on and note-off events, and MIDI events inside the plugin must be converted to the corresponding VST3 events. The host may then convert these events back into MIDI if necessary.
The JUCE MIDI->VST3 event will convert a note-on with a velocity of 0 to a VST3 note-off, because for most applications (especially when using running-status) a note-on with a velocity of 0 is a note-off message.
If sending precise MIDI messages is important to your application, I’d advise using a format that can handle MIDI ‘natively’ (such as VST2, AudioUnit, or LV2 after the release of JUCE 7) instead.