In short: Hardware Encoders like QuickSync, NVenc and VCE need more bitrate to reach the same quality as the x264 cpu encoding (on the very fast preset). It can also depend on the generation of the encoder you use. Older chips might give you even worse results.
OBS-Studio currently uses "Media Foundation" to support the hardware encoders. In the future it is planned to replace Media Foundation with a native implementation of the different encoders directly into OBS-Studio at which point they will probably also support proper Constant Bitrate.
In general we recommend to use x264 for streaming and the hardware encoders for local recording to get the best result at normal streaming bitrates. You can of course use the hardware encoders for streaming too but you will have to accept a lower quality at normal streaming bitrates in most cases.