@netwire I adapter your example as follows:

# frozen_string_literal: true
#
# filename: test.rb
#
require 'bundler/inline'

gemfile do
  source 'https://rubygems.org'

  gem 'mongoid', '7.5.4'
  #gem 'mongoid', '8.1.4'
end

local_conn = "mongodb://localhost:27017/test"
atlas_conn = "mongodb+srv://USER:PASS@cluster0.abcde.mongodb.net"

Mongoid.configure do |config|
  config.clients.default = {
   uri: local_conn
  }
end

class Account
  include Mongoid::Document
  include Mongoid::Timestamps

  field :email, type: String
end

time_started = Time.now
Account.delete_all
(1..500).each do |i|
  Account.create(email: "test#{i}@test.com")
end
puts "[Mongoid #{Mongoid::VERSION}] Finished creating items in #{Time.now - time_started} seconds."

I tried running the above script against both a local standalone and an M10 in Atlas and got the following:

# Atlas M10
[Mongoid 7.5.4] Finished creating items in 18.134892 seconds.
[Mongoid 7.5.4] Finished creating items in 18.107205 seconds.
[Mongoid 7.5.4] Finished creating items in 18.149107 seconds.

[Mongoid 8.1.4] Finished creating items in 19.223129 seconds.
[Mongoid 8.1.4] Finished creating items in 18.696247 seconds.
[Mongoid 8.1.4] Finished creating items in 18.44864 seconds.
# Local standalone
[Mongoid 7.5.4] Finished creating items in 0.343445 seconds.
[Mongoid 7.5.4] Finished creating items in 0.360401 seconds.
[Mongoid 7.5.4] Finished creating items in 0.342929 seconds.

[Mongoid 8.1.4] Finished creating items in 0.394659 seconds.
[Mongoid 8.1.4] Finished creating items in 0.39666 seconds.
[Mongoid 8.1.4] Finished creating items in 0.360032 seconds.

While it does seem that 8.x is “slower” than 7.x it does not appear to be by a meaningful amount.

Can you try the above script and let me know if you’re seeing significantly different results?