Most 16×2 LCD displays require 5v, but there are some that’ll work at 3.3v if you shop around. You could also use a 5v display with the Mayfly because you can use the 5v boost circuit to power it, but remember that you’ll have to do some logic-level shifting on the data pins. You could accomplish that by putting one of these inline between the Mayfly and the 5v display: https://www.sparkfun.com/products/12009
But I really prefer to use one of these OLED displays: https://www.amazon.com/Grove-128×64-Board-Arduino-Raspberry/dp/B01D5GLDJ2
It uses the same SSD1306 library as the Adafruit display you posted, but it’s got twice as many pixels since it’s 128×64 instead of 128×32, and it’s cheaper. And the big advantage is that it doesn’t require the separate RST pin like what’s on the Adafruit version, so instead of 5 pins (PWR, GND, SDA, SCL, and RST), it only requires 4 pins, so it has a standard Grove connector on the display board. All you have to do is connect the display directly to the I2C port on the Mayfly using a Grove cable (not included with the display when you buy it from SwitchDoc Labs on Amazon), load a sketch, and the Mayfly prints right on the display. I can post a sample sketch if you’d like.