Why would a file generated by mysqldump be substantially larger than the data directory
this is normal.

with a version 5.5.60 default settings for innodb innodb_file_per_table = 0
it means - data stored not in files inside the database folder, but in global innodb file.

You can check it in /var/lib/mysql
file - ibdata1

after version 5.6 default value for innodb_file_per_table settings is 1 

ibdata1 is still extremely important, but data stored in separate files similar for myisam.