I've written about it a number of times, but the basic idea is that in the old days, we used to have things like a hardware "spindle sync" signal on SCSI, plus the shared bus aspect of SCSI, so the smart money was to buy a homogeneous array from a single vendor using a specific firmware that was tested to work with your RAID controller.
This taught an entire generation of storage admins that they "had to buy matched drives" and array manufacturers got very comfortable selling matched drives because they would get phenomenal discounts from the drive manufacturers. Of course, it seems nice in a number of ways to have a bunch of drives, all the same type, it pleases the OCD impulse in some IT types.
However, these days, there's no spindle sync signal, there's no shared bus, and the channel from a controller to a device is effectively a dedicated channel. There are firmware issues to be considered, of course, but for ZFS, it is all software, and most drives can store blocks and retrieve blocks without too many things going wrong along the way.
The big danger in a homogeneous array is that you might suffer some rapid-fire failures that exceed your redundancy. This can and does happen to people, but it's pretty unusual. I had one client who had a bunch of the (terrible, awful) Seagate 1.5TB drives and they had built a large array out of RAIDZ1 for backups, and it got to the point where they were praying resilver operations would finish on one drive before the next failed.
Perhaps a slightly more practical example might be SSD. Buying two of the same kind of SSD might result in very similar wearout, but if you were to maybe pair something like an Intel 535 (Sandforce/Intel) with a Samsung 850 EVO (Samsung MGX/Samsung 3D V-NAND) you have two very good SSD's with totally different storage technologies backing them. They are exceedingly unlikely to both exhibit failure-level wearout around the same time.