I personally would use PL/SQL, not SQL*plus scripts, for this kind of functionality. Probably a stored procedure that would check that the table doesn't exist yet and then created it. The SQL*plus scripting language makes it quite difficult to correctly catch and handle all kinds of possible errors.
In Oracle, it is not quite common to create daily tables. Partitioning is usually used for that, which allows practically the same functionality without exposing the fact that the table is physically organized on daily basis to the application(s). However, partitioning is a feature that has to be bought extra, you can see whether it is supported in your database by running: