Розширення Tilde визначається POSIX як:
"Префікс тильди" складається з нецитованого символу <tilde> на початку слова, за яким слідують усі символи, що передують першому котируваному <косому слову> у слові, або всі символи в цьому слові, якщо немає < коса> У призначенні можна використовувати кілька префіксів тильди: [...] після <equals-sign> призначення, після будь-якого без котировки <colon> або обох. [...] Якщо жоден із символів префікса tilde не цитується, символи в префіксі tilde після <tilde> трактуються як можливе ім’я для входу з бази даних користувача. [...] Якщо ім'я для входу є нульовим (тобто префікс tilde містить лише тильду), префікс tilde замінюється значенням змінної HOME. Якщо HOME не встановлено, результати не визначені. [...]
Отже, найкоротша відповідь - "тому, що визначено саме так": цитування будь-якого з символів у префіксі, включаючи ~, пригнічує розширення.
Він також визначає розширення як завжди, що призводить до одного слова, тому цитування було б зайвим:
Ім'я шляху, що виникає внаслідок розширення тильди, розглядається так, ніби цитується, щоб запобігти його зміні розбиттям поля та розширенням імені шляху.
Там, де частина шляху вимагає цитування, а решта - префікс тильди, ви можете поєднувати розширення тильди та звичайне цитування прямо:
$ cat ~/"file name with spaces"
Щодо ширшого "чому": оскільки немає можливості використовувати для розбиття слів ~, це має бути поведінкою за замовчуванням, а не вимагати її цитування. Тому що немає необхідності цитувати це, надання ~особливого значення всередині цитат було б зайвим ускладненням. І, звичайно, історичні причини означають, що його зараз не можна змінити, навіть якщо це було б бажано.