I had a go at recreating the benchmark (but with preallocated string keys), and maps did perform slightly worse than variants, but still within about 5% of each other. Flipping the map key type over from string to U64 increased the map performance by ~10%.
You may be seeing the sorting overhead of maps (and sets). AFAIK variant attributes are unsorted, whereas key/value pairs in maps are sorted on insert/delete. This exchange on Twitter has some more info: