Because network speeds have historically been measured in bits.
Files have historically been measured in bytes.
There are 8 bits in a byte
(30 Mbit/s) / 8 = 3.75 MiB/s
You're actually getting above your speed
Speedtest displays speeds in the same format as your ISP does megabits. 30megabits = 3.75 megabytes
There's an option to change it to *bytes per second.

Speedtest isn't very accurate and if your getting 5 megabytes download speed then you have a 40 megabit connection.
Most consumer Internet connections can vary quite wildly. I often get 10Mbit over what I am contracted for. It's completely dependant on how many other customers are utilizing the Internet in your area at a given time. All consumer Internet is oversold.