Ok, so I thought it might be fun to try this out in JavaScript. Afterward I looked at your code and came to some possible conclusions.
What is the difference between
GetComponent(MeshFilter).mesh = mesh;
and
meshObject.GetComponent(MeshFilter).mesh = mesh;
My suspicion is that you’re attaching this script to a different Object or something, so the first line above from your code is being applied to that Object instead of the new one you instantiated.
Another potential problem is that I don’t see myVerts defined. I presume you are doing it elsewhere, but if you’re not setting them then your probably filling your mesh with zero size triangle(s).
Here’s my JS script that works like the CS script I posted before.
function Start ()
{
var mesh : Mesh = new Mesh ();
mesh.Clear();
mesh.name = "IMadeThisJS";
// create point data, [3] for 3 verticies of a simple triangle
var verts = new Vector3[3] ;
var norms = new Vector3[3] ;
var uvs = new Vector2[3];
var tris = new int[3];
//create points for a triangle that is arrowhead like pointing at 0,0,0
verts[0] = Vector3(0, 0, 0);
verts[1] = Vector3(1, 1, 1);
verts[2] = Vector3(-1, 1, 1);
//simple normals for now, they all just point up
norms[0] = Vector3(0, 1, 1);
norms[1] = Vector3(0, 1, 1);
norms[2] = Vector3(0, 1, 1);
//simple UVs, traingle drawn in a texture
uvs[0] = Vector2(-1, 0.5f);
uvs[1] = Vector2(-1, 1);
uvs[2] = Vector2(1, 1);
//create the triangle
tris[0] = 0;
tris[1] = 1;
tris[2] = 2;
//set the mesh up
mesh.vertices = verts ;
mesh.normals = norms;
mesh.uv = uvs;
mesh.triangles = tris;
//to get this mesh in the scene, we need an object
var meshObject : GameObject = new GameObject("MyObjectMesh");
//add mesh fileter to this GameObject
meshObject.gameObject.AddComponent("MeshFilter");
//set the mesh filter's mesh to our mesh
meshObject.GetComponent(MeshFilter).mesh = mesh;
//to see it, we have to add a renderer
meshObject.gameObject.AddComponent("MeshRenderer");
}