Потому что эти символы являются служебными и если использовать их в названии файлов, у системы возникнут большие проблемы с пониманием того, что вы хотели сказать.
Возьмем пример с обратной косой чертой (\)
Допустим, вы пользователь Windows и вы хотите добавить файл в папку C:\Users\Public\Music
Если ваш файл будет называться melody.mp3, то путь до файла (адрес, по которому компьютер будет искать этот файл, если вы попросите) будет выглядеть как C:\Users\Public\Music\melody.mp3
Это просто и понятно. Но допустим, вы решили назвать файл my\melody.mp3
Путь в такой ситуации выглядел бы как C:Users\Public\Music\my\melody.mp3
Если вы захотите открыть файл, компьютер будет искать папку my внутри папки Music. Естественно, он ее не найдет. Чтобы избежать таких ситуаций, пользователям не разрешается использовать \ в названиях
Прямая косая черта / тоже относится к служебным символам и используется для параметров команд (это редко нужно рядовому пользователю, конечно).
Символ * тоже относится к служебным: при поиске по файлам он используется для обозначения произвольного набора символов. Например, если вам нужно выбрать все текстовые файлы, начинающиеся на A, вы можете указать в поиске такое: A*.txt и получите список всех подходящих файлов. Очевидно, что использование звездочки в названиях создало бы много проблем.