Why do we say "be to blame", not "be to be blamed"?

Solution 1:

First, a bit of terminology:

to blame is an active infinitive

to be blamed is a passive infinitive

Luckily, this issue of "to blame" is known, and was treated by the greatest grammarian of the English language, Otto Jespersen (a Dane:-))

He says:

Essentials of English Grammar By Otto Jespersen

32.2. A related use of the infinitive, which we are therefore entitled to call a secondary, is found in the predicative after the verb be. In some stock phrases the infinitive, though active in form, has a passive sense

The house is to let.

He is to blame.

What’s to pay?

The causes were not far to seek.

She did what there was to do.

The passive infinitive may, however, be used:

This house is not to be let (always : The house is to be sold or let).

He is to be blamed for this.

Jespersen might have used this old grammar for his inspiration:

A Comprehensive Grammar, Presenting Some New Views of the Structure of ... Walton Felch - 1837

Thus both alternatives are equivalent and have both a passive sense, more or less.

The same is argued in this other old grammar:

An introduction to English grammar By William Jillard Hort.

In familiar conversation, the active voice sometimes seems to be put for the passive form of verbs and participles : as, ... in the act of being forged ; "they are to blame ;" that is, " they are to be blamed ;" " those books are to bind," to be bound.