How do virtual size, stripped size and raw size compare between legacy address formats and native segwit? This answer states that SegWit doesn't reduce transaction size.  If this is true, why is it cheaper to send a SegWit transaction?
Let's compare a 2 input and 2 output transaction for variants of pay-to-pubkeyhash. (Full data below.)

P2PKH has no witness, so raw size is equal to stripped size is equal to virtual size. A P2PKH transaction with two inputs and two outputs has 374 bytes (= 374 vBytes).

P2SH-P2WPKH (wrapped segwit) locks funds to a P2SH output in which it redirects to a witness program. A P2SH-P2WPKH transaction with two inputs and two outputs has a raw size of 496 bytes, a stripped size (removing witness data) of 226 bytes and a virtual size of 293.5 vBytes.

P2WPKH (native segwit) does not need the P2SH indirection, but directly resolves a witness program. A P2WPKH transaction with two inputs and two outputs has a raw size of 372 bytes, a stripped size of 154 bytes and a virtual size of 208.5 vBytes.


The raw size corresponds to the data footprint of the transaction on disk or the bandwidth cost to transmit it. We see that P2SH-P2WPKH is actually the biggest in raw size by a margin. P2WPKH and P2PKH are very close in data size with the legacy format P2PKH being slightly smaller in input size, but slightly bigger in output size.
The virtual size corresponds to the blockweight which determines the fees and how many transactions can fit in a block. After applying the weighing that the witness is subject to, P2WPKH has the smallest weight followed by P2SH-P2WPKH and the legacy format P2PKH counts as the heaviest.

P2PKH
TxHeader: 10 bytes, 40 WU/10 vBytes
Input: 148 bytes, 592 WU/148 vBytes
Output: 34 bytes
For legacy formats, the raw size, stripped size and virtual size are all equal.
Tx with 2 inputs and 2 outputs: 374 bytes (raw, stripped and virtual size), 1,496 WU
P2SH-P2WPKH
TxHeader: 12 bytes, 10 bytes stripped size, 2 bytes witness, 42 WU/10.5 vBytes
Input: 210 bytes, 76 bytes stripped size, 134 bytes witness, 438 WU/109.5 vBytes
Output: 32 bytes (outputs have no witness data)
Tx with 2 inputs and 2 outputs: 496 bytes raw size, 226 bytes stripped size, 1,174 WU/294 vBytes virtual size
P2WPKH¹
TxHeader: 12 bytes, 10 bytes stripped size, 2 bytes witness, 42 WU/10.5 vBytes
Input: 149 bytes, 41 bytes stripped size, 108 bytes witness, 272 WU/68 vBytes
Output: 31 bytes
Tx with 2 inputs and 2 outputs: 372 bytes, 154 bytes stripped size, 834 WU/208.5 vBytes

¹ See What is the size and weight of a P2WPKH input? for a fully detailed calculation.