why MyISAM uses 3 files per table?
As Phil already said 'It was a design decision'. This is the main difference between InnoDB Engine. Because InnoDB Engine is store all databases in one file. And each MyISAM table is stored on disk in three files (if it is not partitioned). The files have names that begin with the table name and have an extension to indicate the file type. MySQL uses a .frm file to store the definition of the table, but this file is not a part of the MyISAM engine; instead it is a part of the server.
The data file has a .MYD (MYData) extension. The index file has a .MYI (MYIndex) extension.

for your ref https://en.wikipedia.org/wiki/MyISAM

Even RolandoMySQLDBA and ypercube has well defined InnoDB Engine with respect to MyISAM engine Why does InnoDB store all databases in one file?