The hidden final argument
Many spreadsheets accept VLOOKUP(key,table,return_column) but interpret the missing final argument as an approximate search. Approximate search can return a plausible-looking, incorrect row when keys are unsorted. The source SKU list is not an ordered numeric lookup table, so exact mode is the intended behaviour.
D2:E6 places the key in the leftmost column. The index 2 means return the second column of that two-column range, not the second column of the entire sheet. FALSE or 0 explicitly requests an exact match in the documented implementations here.
When VLOOKUP is the wrong tool
A return column to the left of the key is awkward with classic VLOOKUP. XLOOKUP and INDEX+MATCH avoid that limitation without rearranging the workbook. Gnumeric also has a fifth, product-specific as_index option; do not simply transfer that argument to another application.
Verify more than the happy path
Use a missing SKU and a duplicate SKU to confirm errors, fallback text and first-match handling. Never take “the workbook opened successfully” as evidence that the formula still calculates to the right row.