The big difference between solid state flash memory and conventional magnetic disks is that magnetic disk sectors can be selectively rewritten; flash can't. That changes everything.
Flash memory is organized into pages, typically 4 kiB each, analogous to magnetic disk sectors. Flash and magnetic pages/sectors can be read randomly, but a flash page can only be written once. Flash pages can be reused only after being erased, a slow (milliseconds) operation that must be done on a large block of pages at once. Block sizes vary, but are typically 256 kiB or more.
SSDs have controllers to emulate the conventional magnetic disks they replace. They automatically map virtual disk sectors to physical flash pages and erase blocks (groups of pages) as needed to free up space for additional writes. If you write sector 10 on a brand new drive, the controller will assign a flash page to hold it that could be anywhere in the physical flash memory. If you then overwrite sector 10, the controller will assign a new flash page, write it with your new data, and map it so it will read back as sector 10.
Here's the crucial part: the controller will not immediately erase the flash page holding the previous version of sector 10; it will simply mark it as no longer in use. When the supply of free pages runs low, the controller will find a block of physical flash memory with the smallest number of active pages, copy those still-active pages to another block, and erase the block. (Remember, only an entire block can be erased; individual pages cannot be.)
You see where this is going? Writing zeroes onto the virtual disk sectors doesn't actually destroy the data in the flash memory, at least not right away. It simply assigns fresh pages to hold the zeroes you're writing and marks the old pages to be erased and reused at some future time.
One of the early big problems with SSDs is that the SSD controller had no way to know when you deleted a file; the only way it knew you no longer needed the contents of a given sector (page) was when you actually overwrote it with new data. This caused a lot of unnecessary copying of discarded data, which can really slow down writes; the problem is called write amplification.
This led to the TRIM command, which lets the file system tell the drive that the data in certain sectors is no longer needed. This greatly simplifies life for the controller when it decides to erase a block because it need not copy out TRIMmed pages. While the spec requires that a TRIMed virtual page immediately read back as zeroes, it does not require the immediate erasure of the physical page with the previous data. So even with TRIM, you can't be totally sure that you've actually destroyed anything. A sufficiently sophisticated forensic analysis that bypasses the controller and reads the physical flash pages directly might still find it.
And it gets still worse. Some controllers compress your data to use physical flash more efficiently and achieve faster I/O speeds. So writing binary zeroes, which compress very well, over the entire virtual drive might not even touch much of the data previously stored in physical flash.
The bottom line is that the best way to destroy everything on the SSD is to use the special secure erase command. It's also much faster than overwriting.
And even then you might not want to trust the drive firmware to do what it's supposed to do, e.g., because it's been hacked by some 3-letter government agency. So here's what to do if you're truly paranoid:
1. Issue the secure erase command. This is pretty fast on an SSD, taking typically only a few minutes.
2. Fill the entire drive with random data (not zeroes) to defeat any data compression.
3. Read back the random data to ensure it's exactly what you wrote. (Generate (pseudo)random data with a keyed cipher to make this easier.)
4. Issue the secure erase command a second time.
This will work unless the drive is at least twice as large as advertised to give malicious firmware room to save your previous disk image while still storing and recovering the random data you wrote in step #2. The SSD market is very competitive, so no manufacturer is going to label his drive as containing only a fraction of its true capacity.
Of course, there's a much simpler solution to all this: never write plaintext to the drive in the first place. Always use a disk encryption system like LUKS, Filevault or Truecrypt. Then all you have to do to make the stored data unrecoverable is to destroy all copies of the cipher keys.