Plain sh has no arrays. You have to cope without arrays. In your case that's easy:
start=$(date +%s)
sleep 5
end=$(date +%s)
echo "start=$start end=$end"
If you really, really want to have everything in one subshell then you have to store the output as a plain string and parse that string to retrieve the individual values. You can think of that one string as an "array" where each line is an array entry. Individual lines can be retrieved using sed (which uses indices starting from 1 instead of 0).
times=$(date +%s; sleep 5; date +%s)
echo "start=$(echo "$times" | sed -n 1p) end=$(echo "$times" | sed -n 2p)"
To store individual lines in variables use subshells:
times=$(date +%s; sleep 5; date +%s)
start=$(echo "$times" | sed -n 1p)
end=$(echo "$times" | sed -n 2p)
echo "start=$start end=$end"
However, if you just want to compute how long sleep 5 took you might as well use time sleep 5 which already does that for you.