It is supposed to reach them, and it does — dataset rows are interpolated with the same variable scope the YAML was, which is the dotenv layer with process.env merged over the top. So .env.staging is a valid home for that value.
Which means your colleague has a different problem, and the reason it looks like this one is the second half of the design: unresolved references in dataset rows are kept rather than thrown on. A row can legitimately contain ${...} that is not a variable at all, so failing the run would be wrong. The cost is that a typo travels all the way to the login form as the literal string ${TEST_MEMBER_PASSWORD} and surfaces as a rejected credential.
Check the spelling on both sides and check which file it is in — the .env.staging has to be at the repo root or in the project folder, and the -e has to be staging for .env.staging to be read at all.