flash is random access. it doesnt care if its a convoluted mess. there is no head to move and no platter to rotate, just a few logic gates that need to be twiddled to change address. the master file table entry for any given files does not contain any file data, if anything merely the file header, file size, etc. as well as a pointer to the first allocation unit that the file is stored in. the allocation unit has a pointer to the next unit (perhaps also pointers to the previous unit and the file table entry) and so on.
fragmentation is bad because of the mechanical motions the drive must go through if you got bits of file everywhere, it has to stop reading to find the next allocation unit. its a lot of stop and go. when this happens on the flash drive its all done with transistor-transistor logic, which aside from a tiny propagation delay (were talking nanoseconds here) is instantaneous. read (or write) command goes something like this. address is written to the address bus by the controller, then the read (or write) enable pin goes active and for read i/o pins produce the value stored at the address, or for write, the i/o pins accept the new value and store it at the address.
i believe the flash chips used support block operations, where once an address is set and a read operation begins, it will read/write a byte sequentially each clock until the read/write enable pin changes logic level, without needing to key in new addresses each cycle. since the file system uses allocation units, and data stored in those units is guaranteed to be sequential, you could block read an entire allocation unit without needing to change the address. same if all your allocation units are in a row. youd need to change address if your allocation units are non-sequebntial, but this operation is several orders of magnitude faster than on a mechanical hard drive and the performance loss would be negligible.