It is not really a question of better or performance it is more a question of what you really need to do with your form, and especially with dynamic data.
For example if you use :
<input type="text" name="username" value="<?php echo $username; ?>" />
To put a default or generated value from validation it is easier to do :
echo form_input('username', $username);
For example also using :
echo form_open('email/send');
Will generate the correct link / path to your controller so you don't have to worry about it if you move or change your application directory because it will put the correct value :
<form method="post" accept-charset="utf-8" action="http:/example.com/index.php/email/send" />
And so on and so on ...