The basic gist is that storage cells in SSD drives store data in fixed size blocks, and the data written into the blocks are in smaller chunks. As you use an SSD, it looks for empty blocks and fills them with the data chunks because writing to an empty block is fastest. But as the drive fills up, there are less and less completely empty blocks and lots of partially filled ones. The drive can't put data in those blocks because it would erase the data already stored in them, so the data in those partial blocks are moved out to a temporary cache, it reorganizes/consolidates the smaller chunks of data to fit, and then puts it all back in the block. This happens more and more on a full drive since there are less completely empty blocks, and in turn, these extra operations take extra time thus the performance hit.
The "general" rule of thumb is to try and keep your SSD about 25-30% empty.