By default, iostat displays the first for drives. It would be less surprising if it displayed all drives.
It seems that the reason to display four is that it fits into the 80 columns (that is, with -d; otherwise, the cpu and tty display make the line overflow anyway). Jan Index: iostat.8 =================================================================== RCS file: /cvs/src/usr.sbin/iostat/iostat.8,v retrieving revision 1.28 diff -u -p -r1.28 iostat.8 --- iostat.8 17 Sep 2022 11:39:09 -0000 1.28 +++ iostat.8 18 Sep 2022 16:05:52 -0000 @@ -134,9 +134,9 @@ characters written to terminals .It disks Disk operations. The header of the field is the disk name and unit number. -If more than four disk drives are configured in the system, +By default, .Nm -displays only the first four drives. +displays all drives. To force .Nm to display specific drives, their names may be supplied on the command Index: iostat.c =================================================================== RCS file: /cvs/src/usr.sbin/iostat/iostat.c,v retrieving revision 1.44 diff -u -p -r1.44 iostat.c --- iostat.c 12 Jul 2021 15:09:21 -0000 1.44 +++ iostat.c 18 Sep 2022 16:05:52 -0000 @@ -444,7 +444,7 @@ selectdrives(char *argv[]) /* Pick up to 4 drives if none specified. */ if (ndrives == 0) - for (i = 0; i < dk_ndrive && ndrives < 4; i++) { + for (i = 0; i < dk_ndrive ; i++) { if (cur.dk_select[i]) continue; cur.dk_select[i] = 1;