There are two ways to interpret बिस्तर in this sentence.
First is if we are talking about one bed. In which case the translation given would be correct. However, to make it clear that this is the case one can use इस / उस / एक बिस्तर.
Another interpretation is that it refers to bed in general without any reference to any particular bed. In such a case you can say, "[The] People are sleeping on-bed." (Similar to in-flight)
If you had to specifically say, "People are sleeping on the beds." you would have to use the plural बिस्तरों.
The correct translation for 'The people have been sleeping on the bed' is 'लोग बिस्तर पर सोते रहे हैं।
However, you're right that Hindi often substitutes the present continuous (सो रहे हैं) in place of the present perfect continuous (सोते रहे हैं), especially when a reference time is included (i.e, when there is no room for ambiguity). For example, it is more common to say लोग पिछले साल से बिस्तर पर सो रहे हैं। instead of लोग पिछले साल से बिस्तर पर सोते रहे हैं। for 'The people have been sleeping on the bed since last year' because the phrase 'पिछले साल से' makes it clear what we mean.