It just seems strange to me, comparing two dates, that the output format would include hours, minutes and seconds. It makes sense in the last example below where I've provided now() - a datetime - but when it's just two dates... I can't think of an example where the return wouldn't be a whole number of days.
the question is well asked. And I think, you're right; it does not make sense. But I think it's the standard format which the lubridate makers chose for (what they call) periods. Maybe to make the difference to a duration.
You could use base R's difftime which is in days.
Example
library(lubridate)
as.difftime(ymd("2022-10-20") - today())
#> Time difference of 748 days
as.difftime(ymd_h("2022-10-20 0") - now())
#> Time difference of 747.1813 days
# the base unit is days for difftime
as.numeric(as.difftime(ymd_h("2022-10-20 0") - now()))
#> [1] 747.1813
# while the base unit for period is the second
as.numeric(as.period(ymd("2022-10-20") - today()))
#> [1] 64627200