Protons are not free available.

They always are connected to one or another particle. Yes, they can be transferred, but not at distance. Only when acid and base touch each other, transfer of a proton is possible.

So acids donate H+. We can conclude that, but this phenomena has a cause. Why is it that acids donate Hydrogen ions? How to discover that any structure has such an option of donating H+?

Try to understand the table:
CH4
H2S
NH3
H2O
HCOOH
HCl
HCN
    H
    |
H - C - H
    |
    H
   H
  /
 S
  \
   H
H   H
 \ /
  N
  |
  H
H
 \
  O
  |
  H
      OH
     /
H - C = 0
H - Cl H - C ≡ N


The H+-ion can appear from a strong polar bond with Hδ+-atoms in it; condition is that within the structure are enough repelling forces between that Hδ+ and another positive charged close atom.
non polar bonds normally do not participate in acid base reactions.