Height is 1 px less
Height is 1 px less. Running bemenu with -H 28 on sway renders 27px
bemenu-run -i -m all -p '' -H 28 --fn 'monospace 12'

I had the same issue. I fixed this by using other fonts (works fine for Terminus)
I have the same issue where --line-height=22 had a height of 21 pixels, and --line-height=23 had a height of 23 pixels. Tried it with the default font as well as fira sans, and with different font sizes, and all have the same result. I don't believe I have any DPI scaling turned on.
I am using this command to launch bemenu in sway (color formatting omitted):
bemenu-run -i "$@" -m "$(swayfocused)" -p "" --line-height=22 --fn "font pango:Fira Sans Bold 10"

I just tried --line-height=24, and it resulted in a pixel height of 23. Looks like the pixel height is quantized to the nearest multiple of 2 minus 1 for some reason.