HTML и HTM - это одно и то же, это ХТМЛ-файл со всем, что можно в него впихнуть (Java-Script, CSS и т.д.)
Если мне не изменяет память различие появилось когда-то давно из за различия серверов на Windows и Unix платформах - подробности уже забыл.
SHTML - то же, что предыдущее, но указывает серверу, что его нужно просмотреть на наличие директив SSI (Server Side Include). Самые свежие топики по нему
здесь и
здесь.
В настояший момент практически не применяется, так как можно настроить сервер, чтобы располагать директивы в HTM-файлах.
PHTML - когда-то так обозначали файлы, написанные с использованием PHP. Сейчас, как правило, используют расширения .php