Почему в классах нельзя писать let?
Потому что это не переменная, а свойство. Переменные можно делать внутри методов и конструктора.
К переменной нельзя обратится через this. Например us = "User"  + this.name
Также к переменной нельзя получить доступ из вне, вот так: 
class User {
    name = "Tom"
}
let tom = new User();

alert(tom.name);

Коротко говоря потерялся бы весь смысл от ООП.
В классах не объявляются переменные, в них объявляются свойства и методы. Объявлять переменные можно в глобальной области и функциях, циклах, в классах они ни к чему.