As from object, is there a rational reason for saying "last night" rather than "yesterday night", though you would say "yesterday morning" and "yesterday afternoon"?
[Edited:] You couldn't say last morning in most cases, because you might be referring to this morning if the hour of speaking is late (today's morning is the "last" morning then): it would be confusing if last morning could be either today or yesterday. The same applies to the afternoon. But you can't go later than "night": the last night that has passed (you would not use "last" for a period that is not over yet) is necessarily that of the day before today. This could be the reason why we use "last" only with "night". But there might be some entirely different historical reason instead; it is impossible to say without textual research.
We could theoretically use yesterday night as an alternative to last night; but it would be longer, which might be why it is never used. Or it could be some other reason.
Here's one possible explanation.
Many years ago (before Shakespeare), people didn't either say yesterday night or last night because they said yesternight instead. Shakespeare uses both last night and yesternight. When yesternight was still in use, yesterday night would have sounded strange, even though last night wouldn't. And when yesternight went out of use completely, last night was already too firmly established for yesterday night to be used.
"Yesterday night" is standard usage in British English. It means "the evening of yesterday".
Example from BBC News:
BONFIRE NIGHT DEMO 0820: Eleven people have been arrested after scuffles broke out after protests by the Anonymous movement at Buckingham Palace and Parliament yesterday night.
From The Guardian:
City officials had been told the storm could make landfall yesterday night and in preparation the Texas National Guard called 600 troops to active duty yesterday morning.
Morning, afternoon and evening are the different phases or 'time frames' of the day, so yesterday morning, yesterday afternoon and yesterday evening are quite but natural. However, when night arrives, the day is gone or when the day is gone, we call it night.
Hence, YESTERDAY NIGHT is not logical.
This is my reason, but I may be wrong. :)