As @No Sssweat recommend, the D8 Migrate Modules is good way. With your way, you have to add property pre_hashed for field pass.
$values = [
'name' => 'test',
'mail' => 'firstname.lastname@example.org',
'roles' => ,
'pass' => [
'value' => $hashed_drupal_7_password,
'pre_hashed' => TRUE,
'status' => 1,
$account = entity_create(...
You should use the D8 Migrate Modules to do this, specially for transferring 10K users, unless your current code is using the Batch API. Otherwise, you're going to run into timeouts because it's too big. Also, these migrate modules allow you to transfer from SQL to SQL. No need for CSV file, if you don't want. But you can still do CSV file import with them, ...
I think that either what you were told was not explained correctly, or that you misunderstood.
You can put content on development environments. And you should, to test.
But that content won't be migrated to production. If you want that content on production, you'll need to create it on production. Or, you can create a migration strategy (using the Migrate ...