The preference of verb constructions on German signs is not a matter of correctness, but of idiomacy and custom. They are contractions from statements such as:
Ich habe ein Haus zu verkaufen.
→ Haus zu verkaufen!
Ich habe ein Fahrrad zu verschenken.
→ Fahrrad zu verschenken!
Ich habe ein Zimmer zu vermieten.
→ Zimmer zu vermieten!
Nominalizations such as
Ich biete ein Haus zum Verkauf an.
→ Haus zum Verkauf!
Ich biete ein Fahrrad zur Schenkung an.
→ Fahrrad zur Schenkung!
Ich biete ein Zimmer zur Miete an.
→ Zimmer zur Miete!
are not wrong, but they are considered gobbledegook (Papierdeutsch).