Unless you somehow setup your own speedtest server in your house you are running over the internet.
Even within you house there in overhead in the packets that is not counted toward the speed. You have things like mac and ip headers in packets and many testing packages do not count this part of the packet.
Even if you were to test completely on a lan you will get issue like this. The only solution is to use something called jumbo frames so more data is put in each packet so the overhead is a smaller percentage. Jumbo frames though are pretty worthless since it can not then be connected to the internet. It is generally only used in enterprise class storage networks where the data is only going between NAS type of devices and...