I understand employer's perspective here: they don't know how well the company will perform, you can't predict everything. So bonuses are a good way to say "if we achieve our goal, you will get part of it as a reward".
However, very often recruiters include the bonus as part of annual salary when presenting the offer. This is unfair to the candidate - since bonus is not guaranteed, it shouldn't be included in the annual compensation, it should always remain separate with a clear information about conditions under which the bonus will or won't be granted.