A host/DAW matches the sample rate of the audio interface, and plugins match the sample rate of their host.
Any plugin, whether it’s a VSTi or a sample player, delivers an audio stream at the DAW’s sample rate. (If for some reason the plugin is unable to match the host’s rate, the plugin’s pitch will be off.) The DAW does not know anything about the contents of that stream, so Cubase isn’t performing any sample rate conversion on Kontakt’s samples, for example.
That leaves the question of whether a sample-playing plugin does any per-sample rate conversion at all? I’m not certain it’s necessary so long as the plugin knows the sample’s inherent rate; it could be a matter of simply playing back at the right rate, not necessarily performing an actual rate conversion on the imported file.
You could probably test whether this occurs by starting off with a 44.1kHz Cubase project that loads some Kontakt instruments, and record how much RAM Kontakt uses. (I think it’s reported on the main screen. If not, you can figure it out by getting a delta between the RAM size of Cubase.exe before and after loading the Kontakt samples.)
Then switch to 96kHz and load the same project. Does Kontakt (or Cubase.exe) consume significantly more RAM? If so, Kontakt rate-converted the samples. If the RAM consumption’s the same, Kontakt just accommodates on the fly.