Это потому, что short - это «больший» тип данных, чем байт. Байт составляет 8 бит, а короткий - 16 бит. Когда вы пытаетесь передать целочисленный литерал, явно приведенный к короткому, методу, принимающему байт, Java знает, что преобразование с потерями может иметь место, и отображает ошибку во время компиляции.
Так как типы данных байта меньше коротких типов данных, числовое продвижение c происходит автоматически, а байт автоматически продвигается к короткому в вашем втором примере.