That depends on your bank. My credit union clears intra-account transfers immediately. The delay therefore is based on bank policy.
It is possible that in the system the accounts are not really linked and so it treats transfers between accounts that you own and accounts between people the same. And further in the case of your bank that they decided to have s one day hold. I believe that'll have heard some banks advertise that you can electronically transfer money to another account holder at the same bank in just 15 min.
I would also make sure that you are selecting immediate transfer instead of a future date transfer. Mine has those as two different options and if you select the other, you just select the date of action to be at least one in the future.
For most banks this is not the case. Transfers within the bank are usually instantaneous.
It is not uncommon for banks to draw out the length of transactions because while the money is "transferring" or "settling" it is actually sitting on the bank's balance sheet, being lent out but not earning any interest. A good deal for them when you aggregate over the millions of customers they have. Your bank may be trying to squeeze a few pennies of interest out of you.
Delays in transactions also allow their fraud team the flexibility to investigate transactions if they want to. Normally they probably don't but if the bank delays all transactions, then those being investigated will not be aware of it.