How to display specific posts with WP_Query?

Could be because you are passing an array of array try this:

<?php
$my_query = new WP_Query();
$my_query->query(array( 'post__in' => $curauth->user_favourite_post));
while ($my_query->have_posts()) : $my_query->the_post(); 
?>
    <h3><a href="https://wordpress.stackexchange.com/questions/27808/<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 
<?php endwhile; ?>