That will do the trick just fine if you just want the data unreadable by connecting the drive to a computer (an alternative to your command is to use shred :
shred -n 1 -v /dev/sdX).
What's more problematic is that data may still be readable by extracting the flash chips, dumping them and then reconstructing the partition layout (not the partition table your PC sees, but the raw table the drive's controller uses for wear leveling).
On a flash disk simply overwriting the data multiple times doesn't have any effect because the internal wear leveling mechanics don't guarantee that the data you overwrite it with will end up on the same physical block of the flash device.
One solution would be to use the secure erase command supported by some SSDs (sadly I don't think it's supported for USB flash drives) and even then, nothing guarantees that the manufacturer correctly implemented the command.
Another solution I thought about would be to overwrite the drive a lot of times (write 10x its capacity), so that even if wear leveling mechanics come into play each block of the flash device will be overwritten at least one time; but that would wear out the device quite a lot and may even kill it.
Until the secure erase command is guaranteed to be reliable, the best solution for secure data destruction is this.