English 'late' basically refers to a period of time when you're delayed. Опоздать is a verb. In Russian, опоздать refers to the critical moment when you appear late, or when your delay makes arriving on time impossible.
So, if you overslept and are going to work in a hurry, in English you can say 'I'm late for work' from the moment you got up, and up to the time when you actually start working. In Russian, you can't say «я опозда́л(а) на работу» when you got up. You'll say «я опозда́л(а)» only when your work hours actually start (but your are not on work). It's a momentary action, it refers to a critical moment when arriving on time becomes impossible.
As such, «мы опозда́ли» carries no information about the period of time. Russian says 'we missed the critical moment', but it doesn't say if this is still relevant to the current situation, or if this happened some time ago. That's why both "we are late" and "we were late" work as translations.
They are not present tense. They are actually past tense just as they seem. That's because in Russian both of those verbs describe the process of getting tired or being behind time respectively. So if the process is finished and now we are dealing with the result (we are tired/late), you need a Perfective verb in the Past tense
It's omited because it's a meta-information giving general comment on the sentence «мы опоздали». «Боюсь» in this sentence is similar to «К сожалению мы опоздали» 'Unfortunately we're late', you're not really afraid, you're just commenting on the sentence «мы опоздали».
When else is it possible?
When you have a context, and the subject stays the same or implied by a context. For example. «Я не хочу́ идти́ одна: бою́сь заблуди́ться» 'I don't want to go alone: I'm afraind of losing my way'. Here, the subject of «не хочу» and «боюсь» is the same, so we can omit the second one since the context makes it clear.
But sentences in Duolingo don't have a context.
In English, a parallel statement would be highly colloquial (almost slang): e.g.," 'fraid we're late." Duo probably wouldn't accept that, but it seems to be close to what the Russian says - but who knows? Sometimes, Duo seems to give us everyday Russian expressions which we can't translate into everyday English.
The answer by [deactivated user] above suggests that this expression can't be used until you arrive at the time/place you were supposed to be and are actually late - due to having missed a critical moment in the past which makes you late NOW.
This answer leaves a lot of questions, such as:
How do you say, "We're late" when you haven't gotten to the place or time where you actually are late? In English, it would be more accurate to say, "We're running late" if you haven't gotten there yet. Who knows, maybe you'll get a police escort and make it on time. Or the meeting will have been postponed.
I suppose that "we're running late" makes more sense, because you really can't be late for something until the time has actually arrived and you're not there yet. So, if the alarm goes off an hour later than expected, and you're running late, you're not late in Russian.
How do you say, "We're running late (as in: we're behind schedule)"?