A befristeter Mietvertrag ends on a stated date; an unbefristeter one runs until somebody gives notice. Practically every Zwischenmiete is fixed-term, which is the point — the main tenant is coming back in April and needs the flat back.
German law does not allow fixed terms simply because a landlord prefers one. An ordinary residential lease may only be time-limited for specific reasons stated in the contract — the owner wants the flat for themselves or their family, substantial works are planned, or it is intended for an employee. Where a term is imposed without such a reason, the tenancy is generally treated as open-ended instead. Sublets sit differently, because the main tenant's own absence is a genuine reason, but the principle is worth knowing: a fixed term is not automatically valid just because it is printed.
What this means for you is mostly about extension. A fixed-term sublet does not roll over on its own and you have no right to stay past the date, so if the plan is “three months and we will see”, say so out loud in advance rather than assuming. Berlin sublets frequently do get extended, and equally frequently the tenant genuinely does come back.
It also means the end date is a hard planning constraint. Line the next place up well before the last fortnight; the whole market runs on people looking three to six weeks ahead, and searching from a position of “I am homeless on Friday” is how people end up paying a deposit to a stranger without viewing.