My custom plugin did not create db tables in database

Late response, but this might help others to understand why $wpdb->prepare should not be used with SQL CREATE statements.

The answer is that $wpdb->prepare surrounds strings (%s) with single quote marks. The CREATE statement produced from the above $wpdb->prepare is invalid SQL:

CREATE TABLE 'wp_classes' ( id mediumint(9) NOT NULL AUTO_INCREMENT, 
time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, 
name tinytext NOT NULL, text text NOT NULL, 
url VARCHAR(55) DEFAULT '' NOT NULL, UNIQUE KEY id (id) );

instead of

CREATE TABLE wp_classes ( id mediumint...